build #240
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 | |
on: | |
pull_request: | |
paths-ignore: | |
- '**.md' | |
- '*.txt' | |
- '.gitignore' | |
- 'docs/*' | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- '**.md' | |
- '*.txt' | |
- '.gitignore' | |
- 'docs/*' | |
release: | |
types: [published] | |
workflow_dispatch: | |
jobs: | |
windows: | |
name: ${{ matrix.btype }} Windows ${{ matrix.arch }} | |
runs-on: windows-2019 | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86_64] | |
cc: [gcc] | |
btype: [Release] | |
include: | |
- arch: x86 | |
msystem: mingw32 | |
prefix: mingw-w64-i686 | |
- arch: x86_64 | |
msystem: mingw64 | |
prefix: mingw-w64-x86_64 | |
- btype: Release | |
rule: install | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- uses: msys2/setup-msys2@v2 | |
with: | |
install: ${{ matrix.prefix }}-binutils ${{ matrix.prefix }}-make ${{ matrix.prefix }}-${{ matrix.cc }} | |
msystem: ${{ matrix.msystem }} | |
path-type: minimal | |
release: false | |
update: false | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Build | |
run: | | |
make clean ARCH=${{ matrix.arch }} | |
make ${{ matrix.rule }} -j$(nproc) ARCH=${{ matrix.arch }} CC=${{ matrix.cc }} DESTDIR=build RENDERER_DEFAULT=opengl QUAKE3=1 | |
make clean ARCH=${{ matrix.arch }} | |
make ${{ matrix.rule }} -j$(nproc) ARCH=${{ matrix.arch }} CC=${{ matrix.cc }} DESTDIR=build RENDERER_DEFAULT=vulkan QUAKE3=1 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: release-mingw64-${{ matrix.arch }} | |
path: build | |
if-no-files-found: error | |
retention-days: 5 | |
ubuntu: | |
name: ${{ matrix.btype }} Unix ${{ matrix.arch }} | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x86, x86_64] | |
cc: [gcc] | |
btype: [Release] | |
include: | |
- btype: Release | |
rule: install | |
- arch: x86 | |
use_sdl: USE_SDL=0 | |
- arch: x86_64 | |
use_sdl: USE_SDL=1 | |
steps: | |
- name: Install tools | |
run: | | |
if [ ${{ matrix.arch }} == "x86" ]; then | |
sudo dpkg --add-architecture i386 | |
sudo apt-get -qq update | |
sudo apt-get -y install gcc-multilib libcurl4-openssl-dev:i386 mesa-common-dev:i386 libxxf86dga-dev:i386 libxrandr-dev:i386 libxxf86vm-dev:i386 libasound-dev:i386 libjpeg-dev:i386 | |
else | |
sudo apt-get -qq update | |
sudo apt-get -y install libcurl4-openssl-dev mesa-common-dev libxxf86dga-dev libxrandr-dev libxxf86vm-dev libasound-dev libsdl2-dev libjpeg-dev | |
fi | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Build | |
run: | | |
make ${{ matrix.rule }} -j$(nproc) ARCH=${{ matrix.arch }} CC=${{ matrix.cc }} DESTDIR=build ${{ matrix.use_sdl }} RENDERER_DEFAULT=opengl QUAKE3=1 | |
make clean ARCH=${{ matrix.arch }} | |
make ${{ matrix.rule }} -j$(nproc) ARCH=${{ matrix.arch }} CC=${{ matrix.cc }} DESTDIR=build ${{ matrix.use_sdl }} RENDERER_DEFAULT=vulkan QUAKE3=1 | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: release-linux-${{ matrix.arch }} | |
path: build | |
if-no-files-found: error | |
retention-days: 5 | |
macos: | |
name: ${{ matrix.btype }} macOS universal2 | |
runs-on: macos-13 | |
strategy: | |
fail-fast: false | |
matrix: | |
cc: [gcc] | |
btype: [Release] | |
include: | |
- btype: Release | |
rule: install | |
steps: | |
- name: Install tools | |
run: brew install coreutils sdl2 # pkg-config | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Build | |
run: | | |
make ${{ matrix.rule }} -j$(sysctl -n hw.logicalcpu) ARCH=x86_64 CC=${{ matrix.cc }} DESTDIR=build INSTALL=ginstall STRIP=echo QUAKE3=1 | |
make ${{ matrix.rule }} -j$(sysctl -n hw.logicalcpu) ARCH=arm64 CC=${{ matrix.cc }} DESTDIR=build INSTALL=ginstall STRIP=echo QUAKE3=1 | |
./make-macosx-app.sh release | |
hdiutil create -format UDZO -srcfolder bin/release-darwin-universal2/OmegA.app bin/OmegA.dmg | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: release-darwin-universal2 | |
path: build/OmegA.dmg | |
if-no-files-found: error | |
retention-days: 5 | |
create-testing: | |
if: github.ref == 'refs/heads/master' && github.event_name == 'push' || github.event_name == 'workflow_dispatch' | |
needs: [windows, ubuntu, macos] | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: Download Artifacts | |
uses: actions/download-artifact@v4 | |
- name: Create binary archives | |
run: | | |
chmod -R +x * | |
7z a -r q3-omega-engine-linux-x86.zip ./release-linux-x86 | |
7z a -r q3-omega-engine-linux-x86_64.zip ./release-linux-x86_64 | |
7z a -r q3-omega-engine-windows-x86.zip ./release-mingw64-x86 | |
7z a -r q3-omega-engine-windows-x86_64.zip ./release-mingw64-x86_64 | |
7z a -r q3-omega-engine-macos-universal2.zip ./OmegA.dmg | |
- name: Create latest build | |
uses: czietz/action-automatic-releases@latest | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
automatic_release_tag: "test" | |
prerelease: true | |
title: Development Build (Quake3 as default) | |
files: | | |
*.zip |