diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..8e24937 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,45 @@ +name: Testbuild for Linux +run-name: testbuild_linux +on: + push: + branches: + - 'master' + pull_request: + types: + - edited + - opened + - synchronize +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_ubuntu_x64_64: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + include: + - env: ubuntu + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - name: Build + run: | + # Public runners come with 2 CPUs. + make -j2 + - name: Create testbuild package + run: | + # Create release directory tree + mkdir -p publish/quake2-ctf-linux-${{github.sha}}/misc/docs + # Copy release assets + cp -r release/* publish/quake2-ctf-linux-${{github.sha}}/ + # Copy misc assets + cp LICENSE publish/quake2-ctf-linux-${{github.sha}}/misc/docs/LICENSE.txt + cp README.md publish/quake2-ctf-linux-${{github.sha}}/misc/docs/README.txt + - name: Upload testbuild package + uses: actions/upload-artifact@v4 + with: + name: quake2-ctf-linux-${{github.sha}} + path: publish/ + if-no-files-found: error diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml new file mode 100644 index 0000000..f37e8d2 --- /dev/null +++ b/.github/workflows/macos.yml @@ -0,0 +1,50 @@ +name: Testbuild for MacOS +run-name: testbuild_macos +on: + push: + branches: + - 'master' + pull_request: + types: + - edited + - opened + - synchronize +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 make + brew upgrade + - 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-ctf-macos-${{github.sha}}/misc/docs + # Copy release assets + cp -r release/* publish/quake2-ctf-macos-${{github.sha}}/ + # Copy misc assets + cp LICENSE publish/quake2-ctf-macos-${{github.sha}}/misc/docs/LICENSE.txt + cp README.md publish/quake2-ctf-macos-${{github.sha}}/misc/docs/README.txt + - name: Upload testbuild package + uses: actions/upload-artifact@v4 + with: + name: quake2-ctf-macos-${{github.sha}} + path: publish/ + if-no-files-found: error diff --git a/.github/workflows/win32.yml b/.github/workflows/win32.yml new file mode 100644 index 0000000..9a07fa9 --- /dev/null +++ b/.github/workflows/win32.yml @@ -0,0 +1,56 @@ +name: Testbuild for Win32 +run-name: testbuild_win32 +on: + push: + branches: + - 'master' + pull_request: + types: + - edited + - opened + - synchronize +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_mingw_x86_32: + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + include: + - { sys: mingw32, env: i686 } + steps: + - uses: msys2/setup-msys2@v2 + with: + msystem: ${{matrix.sys}} + update: true + install: >- + git + make + mingw-w64-${{matrix.env}}-gcc + mingw-w64-${{matrix.env}}-make + - name: Check out repository code + uses: actions/checkout@v4 + - name: Build + shell: msys2 {0} + run: | + # Public runners come with 2 CPUs. + make -j2 + - name: Create testbuild package + shell: msys2 {0} + run: | + # Create release directory tree + mkdir -p publish/quake2-ctf-win32-${{github.sha}}/misc/docs + # Copy release assets + cp -r release/* publish/quake2-ctf-win32-${{github.sha}}/ + # Copy misc assets + cp LICENSE publish/quake2-ctf-win32-${{github.sha}}/misc/docs/LICENSE.txt + cp README.md publish/quake2-ctf-win32-${{github.sha}}/misc/docs/README.txt + - name: Upload testbuild package + uses: actions/upload-artifact@v4 + with: + name: quake2-ctf-win32-${{github.sha}} + path: publish/ + if-no-files-found: error