Skip to content

Note

Note #356

Workflow file for this run

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 }}