Refactor cli parsing so all commands parsed by one method #428
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Porytiles | |
on: | |
push: | |
branches: [ "trunk" ] | |
tags: '*' | |
pull_request: | |
branches: [ "trunk" ] | |
jobs: | |
build-linux-amd64-clang-llvm: | |
name: Build on ubuntu-latest-amd64 with Clang+LLVM 16 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Clang+LLVM 16 and dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install zlib1g-dev | |
sudo apt-get install libpng-dev | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 16 all | |
clang++-16 --version | |
clang++-16 -v | |
- name: Checkout porytiles | |
uses: actions/checkout@v3 | |
- name: Build debug and release executables | |
run: | | |
CXX=clang++-16 make all | |
- name: Run tests on debug and release | |
run: | | |
CXX=clang++-16 make check | |
- name: Build release executable before release | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
CXX=clang++-16 make release | |
- name: Run release tests before release | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
CXX=clang++-16 make release-check | |
release-linux-amd64: | |
name: Release a dynamic-linked linux-amd64 binary | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Clang+LLVM 16 and dependencies | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
sudo apt-get update | |
sudo apt-get install zlib1g-dev | |
sudo apt-get install libpng-dev | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 16 all | |
clang++-16 --version | |
clang++-16 -v | |
- name: Checkout porytiles | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: actions/checkout@v3 | |
- name: Build release executable and run tests | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
CXX=clang++-16 CXXFLAGS=-stdlib=libc++ LDFLAGS=-stdlib=libc++ make release-check | |
- name: Prep release directory before release | |
if: startsWith(github.ref, 'refs/tags/') | |
run : | | |
mkdir porytiles-linux-amd64 | |
cp release/bin/porytiles porytiles-linux-amd64 | |
cp CHANGELOG.md porytiles-linux-amd64 | |
cp README.md porytiles-linux-amd64 | |
cp LICENSE porytiles-linux-amd64 | |
cp -r res porytiles-linux-amd64 | |
- name: Bundle release directory before release | |
uses: montudor/[email protected] | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
args: zip -r porytiles-linux-amd64.zip porytiles-linux-amd64 | |
- name: Create release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: porytiles-linux-amd64.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
release-linux-amd64-static: | |
name: Release a static-linked linux-amd64 binary | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Clang+LLVM 16 and dependencies | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
sudo apt-get update | |
sudo apt-get install zlib1g-dev | |
sudo apt-get install libpng-dev | |
wget https://apt.llvm.org/llvm.sh | |
chmod +x llvm.sh | |
sudo ./llvm.sh 16 all | |
clang++-16 --version | |
clang++-16 -v | |
- name: Checkout porytiles | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: actions/checkout@v3 | |
- name: Build release executable and run tests | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
CXX=clang++-16 CXXFLAGS=-stdlib=libc++ LDFLAGS='-stdlib=libc++ -static' make release-check | |
- name: Prep release directory before release | |
if: startsWith(github.ref, 'refs/tags/') | |
run : | | |
mkdir porytiles-linux-amd64-static | |
cp release/bin/porytiles porytiles-linux-amd64-static | |
cp CHANGELOG.md porytiles-linux-amd64-static | |
cp README.md porytiles-linux-amd64-static | |
cp LICENSE porytiles-linux-amd64-static | |
cp -r res porytiles-linux-amd64-static | |
- name: Bundle release directory before release | |
uses: montudor/[email protected] | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
args: zip -r porytiles-linux-amd64-static.zip porytiles-linux-amd64-static | |
- name: Create release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: porytiles-linux-amd64-static.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build-linux-gcc: | |
name: Build on ubuntu-latest-amd64 with GCC 13 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install GCC 13 and dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install zlib1g-dev | |
sudo apt-get install libpng-dev | |
sudo apt-get install g++-13 | |
g++-13 --version | |
g++-13 -v | |
- name: Checkout porytiles | |
uses: actions/checkout@v3 | |
- name: Build debug and release executables | |
run: | | |
CXX=g++-13 make all | |
- name: Run tests on debug and release | |
run: | | |
CXX=g++-13 make check | |
# build-macos-clang-llvm: | |
# name: Build on macos-latest-amd64 with Clang+LLVM 16 | |
# runs-on: macos-latest | |
# steps: | |
# - name: Install Clang+LLVM 16 and dependencies | |
# run: | | |
# brew update | |
# brew install zlib | |
# brew install libpng | |
# brew install llvm@16 | |
# /usr/local/opt/llvm/bin/clang++ --version | |
# /usr/local/opt/llvm/bin/clang++ -v | |
# - name: Checkout porytiles | |
# uses: actions/checkout@v3 | |
# - name: Build debug and release executables | |
# run: | | |
# LDFLAGS='-L/usr/local/opt/llvm/lib/c++ -Wl,-rpath,/usr/local/opt/llvm/lib/c++' CXXFLAGS='-I/usr/local/opt/llvm/include/c++/v1' CXX=/usr/local/opt/llvm/bin/clang++ make all | |
# - name: Run tests on debug and release | |
# run: | | |
# LDFLAGS='-L/usr/local/opt/llvm/lib/c++ -Wl,-rpath,/usr/local/opt/llvm/lib/c++' CXXFLAGS='-I/usr/local/opt/llvm/include/c++/v1' CXX=/usr/local/opt/llvm/bin/clang++ make check | |
release-macos-amd64: | |
name: Release a dynamic-linked macos-amd64 binary | |
runs-on: macos-latest | |
steps: | |
- name: Install Clang+LLVM 16 and dependencies | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
brew update | |
brew install zlib | |
brew install libpng | |
brew install llvm@16 | |
/usr/local/opt/llvm/bin/clang++ --version | |
/usr/local/opt/llvm/bin/clang++ -v | |
- name: Checkout porytiles | |
uses: actions/checkout@v3 | |
- name: Build debug and release executables | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
LDFLAGS='-L/usr/local/opt/llvm/lib/c++ -Wl,-rpath,/usr/local/opt/llvm/lib/c++' CXXFLAGS='-I/usr/local/opt/llvm/include/c++/v1' CXX=/usr/local/opt/llvm/bin/clang++ make all | |
- name: Run tests on debug and release | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
LDFLAGS='-L/usr/local/opt/llvm/lib/c++ -Wl,-rpath,/usr/local/opt/llvm/lib/c++' CXXFLAGS='-I/usr/local/opt/llvm/include/c++/v1' CXX=/usr/local/opt/llvm/bin/clang++ make check | |
- name: Build release executable before release | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
LDFLAGS='-L/usr/local/opt/llvm/lib/c++ -Wl,-rpath,/usr/local/opt/llvm/lib/c++' CXXFLAGS='-I/usr/local/opt/llvm/include/c++/v1' CXX=/usr/local/opt/llvm/bin/clang++ make release | |
- name: Run release tests before release | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
LDFLAGS='-L/usr/local/opt/llvm/lib/c++ -Wl,-rpath,/usr/local/opt/llvm/lib/c++' CXXFLAGS='-I/usr/local/opt/llvm/include/c++/v1' CXX=/usr/local/opt/llvm/bin/clang++ make release-check | |
- name: Prep release directory before release | |
if: startsWith(github.ref, 'refs/tags/') | |
run : | | |
mkdir porytiles-macos-amd64 | |
cp release/bin/porytiles porytiles-macos-amd64 | |
cp CHANGELOG.md porytiles-macos-amd64 | |
cp README.md porytiles-macos-amd64 | |
cp LICENSE porytiles-macos-amd64 | |
cp -r res porytiles-macos-amd64 | |
- name: Bundle release directory before release | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
zip -r porytiles-macos-amd64.zip porytiles-macos-amd64 | |
- name: Create release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: porytiles-macos-amd64.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |