Update NEWS. #3
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: | |
build: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
defaults: | |
run: | |
shell: ${{ matrix.config.shell }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- name: Linux GCC | |
os: ubuntu-latest | |
compiler: gcc | |
shell: bash | |
suffix: "" | |
- name: MSYS2 MINGW64 | |
os: windows-latest | |
compiler: gcc | |
shell: 'msys2 {0}' | |
msystem: mingw64 | |
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 build dependencies (Chocolatey, Windows) | |
if: runner.os == 'Windows' | |
shell: cmd | |
run: choco install pandoc | |
- name: Install build dependencies (MSYS, Windows) | |
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 build dependencies (Homebrew, macOS) | |
if: runner.os == 'macOS' | |
run: brew install sdl2 autoconf automake libtool pandoc | |
- name: Install build dependencies (apt, Linux) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt update | |
sudo apt -q install libsdl2-dev | |
- uses: actions/checkout@v4 | |
- 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.old "s/\(AC_INIT([^,]*, \)\[[^]]*\], /\1[$VERSION], /" \ | |
configure.ac | |
- name: autogen | |
run: | | |
./autogen.sh | |
- name: make | |
run: make -j8 | |
- name: make check | |
run: make check | |
- name: autotools dist check | |
if: runner.os == 'Linux' | |
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 | |
- name: Build package (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
cd pkg/win32 | |
make | |
- name: Upload build (Windows) | |
if: runner.os == 'Windows' | |
uses: actions/upload-artifact@v4 | |
with: | |
path: "pkg/win32/staging" | |
name: sdl-sopwith-${{steps.version.outputs.VERSION}} | |
- name: Build 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@v4 | |
with: | |
path: "pkg/macos/sdl-sopwith-${{steps.version.outputs.VERSION}}.dmg" | |
name: sdl-sopwith-${{steps.version.outputs.VERSION}} |