We need to set runs-on correctly for macOS build. #83
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: Continuous Integration | |
on: [push, pull_request] | |
jobs: | |
linux_build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install SDL | |
run: | | |
sudo apt update | |
sudo apt -q install libsdl2-dev | |
- name: autogen | |
run: ./autogen.sh | |
- name: configure | |
run: ./configure | |
- name: make | |
run: make -j4 | |
- name: make check | |
run: make check | |
- name: autotools dist check | |
run: | | |
# This checks we can go through the entire process of generating | |
# a distribution package with autotools, and that the package can | |
# be built and installed successfully. | |
make distdir distdir=distdir | |
cd distdir | |
./configure | |
make -j4 | |
make install DESTDIR=/tmp/asdfghj | |
emscripten_build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Emscripten | |
run: | | |
sudo apt update | |
sudo apt -q install emscripten | |
- name: Find Git version | |
id: version | |
run: | | |
if git describe --exact-match --tags >/dev/null; then | |
VERSION=$(git describe --exact-match --tags) | |
VERSION=${VERSION/#sdl-sopwith-/} | |
else | |
VERSION=$(git rev-parse --short HEAD) | |
fi | |
echo "VERSION=$VERSION-js" >> $GITHUB_OUTPUT | |
# Patch the version in configure.ac: | |
sed -i "s/\(AC_INIT([^,]*, \)\[[^]]*\], /\1[$VERSION], /" \ | |
configure.ac | |
- name: build | |
run: ./embuild.sh | |
- name: make pkg | |
run: | | |
make -C pkg/emscripten | |
- name: Upload build | |
uses: actions/upload-artifact@v1 | |
with: | |
path: "pkg/emscripten/page" | |
name: sdl-sopwith-${{steps.version.outputs.VERSION}} | |
- name: Deploy | |
if: ${{ github.ref == 'refs/heads/trunk' }} | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
folder: "pkg/emscripten/page" | |
repository-name: "fragglet/sdl-sopwith-latest" | |
token: "${{secrets.SDL_SOPWITH_LATEST_SECRET}}" | |
clean: true | |
commit-message: "Build from fragglet/sdl-sopwith@${{github.sha}}" | |
matrix_build: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
defaults: | |
run: | |
shell: ${{ matrix.config.shell }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: MSYS2 MINGW64 | |
os: windows-latest | |
compiler: gcc | |
shell: 'msys2 {0}' | |
msystem: ucrt64 | |
msys-env: mingw-w64-x86_64 | |
suffix: win64 | |
- name: MSYS2 MINGW32 | |
os: windows-latest | |
compiler: gcc | |
shell: 'msys2 {0}' | |
msystem: mingw32 | |
msys-env: mingw-w64-i686 | |
suffix: win32 | |
- name: macOS Clang | |
os: macos-latest | |
compiler: clang | |
shell: bash | |
suffix: macos | |
steps: | |
- name: Install pandoc | |
if: runner.os == 'Windows' | |
shell: cmd | |
run: choco install pandoc | |
- name: Set up MSYS2 | |
if: runner.os == 'Windows' | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{ matrix.config.msystem }} | |
path-type: inherit | |
update: true | |
install: >- | |
autotools | |
base-devel | |
dos2unix | |
git | |
zip | |
${{ matrix.config.msys-env}}-gcc | |
${{ matrix.config.msys-env}}-python | |
${{ matrix.config.msys-env}}-SDL2 | |
- name: Install Homebrew packages | |
run: brew install sdl2 autoconf automake libtool pandoc | |
- uses: actions/checkout@v3 | |
- name: Find Git version | |
id: version | |
run: | | |
if git describe --exact-match --tags >/dev/null; then | |
VERSION=$(git describe --exact-match --tags) | |
VERSION=${VERSION/#sdl-sopwith-/} | |
else | |
VERSION=$(git rev-parse --short HEAD) | |
fi | |
VERSION=$VERSION-${{ matrix.config.suffix }} | |
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT | |
# Patch the version in configure.ac: | |
sed -i "s/\(AC_INIT([^,]*, \)\[[^]]*\], /\1[$VERSION], /" \ | |
configure.ac | |
- name: autogen | |
run: | | |
./autogen.sh | |
- name: make | |
run: make -j8 | |
- name: Package (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
cd pkg/win32 | |
make | |
- name: Upload build (Windows) | |
if: runner.os == 'Windows' | |
uses: actions/upload-artifact@v1 | |
with: | |
path: "pkg/win32/staging" | |
name: sdl-sopwith-${{steps.version.outputs.VERSION}} | |
- name: Make package (macOS) | |
if: runner.os == 'macOS' | |
run: | | |
cd pkg/macos | |
make PACKAGE_VERSION=${{steps.version.outputs.VERSION}} \ | |
PACKAGE_STRING="Sopwith build ${{steps.version.outputs.VERSION}}" | |
- name: Upload build (macOS) | |
if: runner.os == 'macOS' | |
uses: actions/upload-artifact@v1 | |
with: | |
path: "pkg/macos/sdl-sopwith-${{steps.version.outputs.VERSION}}.dmg" | |
name: sdl-sopwith-${{steps.version.outputs.VERSION}} |