yquake2remaster/.github/workflows/macos.yml

61 lines
2.4 KiB
YAML
Raw Normal View History

Add Github Workflows to create test build for Linux, MacOS and Win32. This is should make testing for normal endusers easier by providing prebuild binaries for them. It also serves as a simple CI by compiling every commit and Pull Request for Linux, MacOS and Win32. And it saves time, because (Windows) test build must no longer created by hand. * Windows is build for Win32 only. We won't add a Win64, because there's no point in having a 64 bit Windows release and it would break most existing mods. Savegames are also not compatible between 32 and 64 but builds. * MacOS is build to get some test exposure and to publish up to date binaries to users. This doesn't mean that MacOS is now officially supported. It stays community supported. The binaries are untested, because I have no Mac. PRs are welcome. ;) * Linux is build with ubuntu-latest, which is the last LTS release. The binaries should work on most other distros. Windows includes all required dependencies. As a difference to release builds the curl.dll is taken from upstream and not a cut down custom build. MacOS and Linux do not ship the dependencies, users should install them through Brew or their distro. Github strips file permission when zipping the assets. A work around would be to create a tar archive and zip that, but that is ugly. I opted against it, users must mark the binaries executable by hand. These workflows trigger at each push to the master master branch and at each new or edited pull request. Special features like SDL3 are not supported at this time.
2024-08-11 11:03:12 +00:00
name: Testbuild for MacOS
run-name: testbuild_macos
on:
push:
branches:
- 'master'
pull_request:
types:
- edited
- opened
- synchronize
Add Github Workflows to create test build for Linux, MacOS and Win32. This is should make testing for normal endusers easier by providing prebuild binaries for them. It also serves as a simple CI by compiling every commit and Pull Request for Linux, MacOS and Win32. And it saves time, because (Windows) test build must no longer created by hand. * Windows is build for Win32 only. We won't add a Win64, because there's no point in having a 64 bit Windows release and it would break most existing mods. Savegames are also not compatible between 32 and 64 but builds. * MacOS is build to get some test exposure and to publish up to date binaries to users. This doesn't mean that MacOS is now officially supported. It stays community supported. The binaries are untested, because I have no Mac. PRs are welcome. ;) * Linux is build with ubuntu-latest, which is the last LTS release. The binaries should work on most other distros. Windows includes all required dependencies. As a difference to release builds the curl.dll is taken from upstream and not a cut down custom build. MacOS and Linux do not ship the dependencies, users should install them through Brew or their distro. Github strips file permission when zipping the assets. A work around would be to create a tar archive and zip that, but that is ugly. I opted against it, users must mark the binaries executable by hand. These workflows trigger at each push to the master master branch and at each new or edited pull request. Special features like SDL3 are not supported at this time.
2024-08-11 11:03:12 +00:00
concurrency:
# Cancel concurrent workflows for the same PR or commit hash.
group: ${{github.workflow}}-${{github.event_name == 'pull_request' && github.head_ref || github.sha}}
cancel-in-progress: true
jobs:
build_macos_aarch64:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
include:
- env: macos
steps:
- name: Install build dependencies
run: |
brew update
brew install sdl2 openal-soft make
- name: Check out repository code
uses: actions/checkout@v4
- name: Build
run: |
# Public runners come with 3 CPUs.
gmake -j3
- name: Create testbuild package
run: |
# Create release directory tree
mkdir -p publish/quake2-macos-${{github.sha}}/misc/docs
# Copy release assets
cp -r release/* publish/quake2-macos-${{github.sha}}/
# Copy misc assets
cp -r stuff/yq2.cfg publish/quake2-macos-${{github.sha}}/misc/yq2.cfg
cp -r stuff/mapfixes publish/quake2-macos-${{github.sha}}/misc
cp LICENSE publish/quake2-macos-${{github.sha}}/misc/docs/LICENSE.txt
cp README.md publish/quake2-macos-${{github.sha}}/misc/docs/README.txt
cp doc/010_index.md publish/quake2-macos-${{github.sha}}/misc/docs/010_index.txt
cp doc/020_installation.md publish/quake2-macos-${{github.sha}}/misc/docs/020_installation.txt
cp doc/030_configuration.md publish/quake2-macos-${{github.sha}}/misc/docs/030_configuration.txt
cp doc/040_cvarlist.md publish/quake2-macos-${{github.sha}}/misc/docs/040_cvarlist.txt
cp doc/050_commands.md publish/quake2-macos-${{github.sha}}/misc/docs/050_commands.txt
cp doc/060_multiplayer.md publish/quake2-macos-${{github.sha}}/misc/docs/060_multiplayer.txt
cp doc/070_packaging.md publish/quake2-macos-${{github.sha}}/misc/docs/070_packaging.txt
cp doc/080_contributing.md publish/quake2-macos-${{github.sha}}/misc/docs/080_contributing.txt
cp doc/090_filelists.md publish/quake2-macos-${{github.sha}}/misc/docs/090_filelists.md
- name: Upload testbuild package
uses: actions/upload-artifact@v4
with:
name: quake2-macos-${{github.sha}}
path: publish/
if-no-files-found: error