testbuild_win64 #12
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: Testbuild for Win64 | |
run-name: testbuild_win64 | |
on: | |
push: | |
branches: | |
- 'master' | |
tags: | |
- "*" | |
pull_request: | |
types: | |
- opened | |
- edited | |
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_64: | |
runs-on: windows-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { sys: mingw64, env: x86_64 } | |
steps: | |
- uses: msys2/setup-msys2@v2 | |
with: | |
msystem: ${{matrix.sys}} | |
update: true | |
install: >- | |
git | |
make | |
zip | |
unzip | |
mingw-w64-${{matrix.env}}-curl | |
mingw-w64-${{matrix.env}}-ffmpeg | |
mingw-w64-${{matrix.env}}-gcc | |
mingw-w64-${{matrix.env}}-make | |
mingw-w64-${{matrix.env}}-openal | |
mingw-w64-${{matrix.env}}-SDL2 | |
mingw-w64-${{matrix.env}}-vulkan-headers | |
mingw-w64-${{matrix.env}}-wget | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: Build | |
shell: msys2 {0} | |
run: | | |
# Public runners come with 2 CPUs. | |
make -j2 | |
make -j2 ref_gles1 | |
- name: Create testbuild package | |
shell: msys2 {0} | |
run: | | |
# Create release directory tree | |
mkdir -p publish/quake2-win64-${{github.sha}}/misc/docs | |
# Copy release assets | |
cp -r release/* publish/quake2-win64-${{github.sha}}/ | |
# Copy misc assets | |
cp -r stuff/yq2.cfg publish/quake2-win64-${{github.sha}}/misc/yq2.cfg | |
cp -r stuff/mapfixes publish/quake2-win64-${{github.sha}}/misc | |
cp LICENSE publish/quake2-win64-${{github.sha}}/misc/docs/LICENSE.txt | |
cp README.md publish/quake2-win64-${{github.sha}}/misc/docs/README.txt | |
cp doc/010_index.md publish/quake2-win64-${{github.sha}}/misc/docs/010_index.txt | |
cp doc/020_installation.md publish/quake2-win64-${{github.sha}}/misc/docs/020_installation.txt | |
cp doc/030_configuration.md publish/quake2-win64-${{github.sha}}/misc/docs/030_configuration.txt | |
cp doc/040_cvarlist.md publish/quake2-win64-${{github.sha}}/misc/docs/040_cvarlist.txt | |
cp doc/050_commands.md publish/quake2-win64-${{github.sha}}/misc/docs/050_commands.txt | |
cp doc/060_multiplayer.md publish/quake2-win64-${{github.sha}}/misc/docs/060_multiplayer.txt | |
cp doc/070_packaging.md publish/quake2-win64-${{github.sha}}/misc/docs/070_packaging.txt | |
cp doc/080_contributing.md publish/quake2-win64-${{github.sha}}/misc/docs/080_contributing.txt | |
cp doc/090_filelists.md publish/quake2-win64-${{github.sha}}/misc/docs/090_filelists.md | |
# SDL2 | |
wget -c https://github.com/libsdl-org/SDL/releases/download/release-2.30.6/SDL2-2.30.6-win32-x86.zip | |
unzip -o SDL2-2.30.6-win32-x86.zip | |
cp SDL2.dll publish/quake2-win64-${{github.sha}}/ | |
# static ffmpeg | |
wget -c https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2023-11-30-12-55/ffmpeg-n6.0.1-win64-lgpl-shared-6.0.zip | |
unzip -o ffmpeg-n6.0.1-win64-lgpl-shared-6.0.zip | |
cp ffmpeg-n6.0.1-win64-lgpl-shared-6.0/bin/*.dll publish/quake2-win64-${{github.sha}}/ | |
# remove unused libraries | |
rm -fv publish/quake2-win64-${{github.sha}}/avdevice*.dll publish/quake2-win64-${{github.sha}}/avfilter*.dll publish/quake2-win64-${{github.sha}}/postproc*.dll | |
# openal-soft | |
wget -c https://www.openal-soft.org/openal-binaries/openal-soft-1.23.1-bin.zip | |
unzip -o openal-soft-1.23.1-bin.zip | |
cp openal-soft-1.23.1-bin/bin/Win64/soft_oal.dll publish/quake2-win64-${{github.sha}}/openal32.dll | |
# curl (releases use a custom build curl.dll) | |
wget -c https://curl.se/windows/dl-8.9.1_1/curl-8.9.1_1-win64-mingw.zip | |
unzip -o curl-8.9.1_1-win64-mingw.zip | |
cp curl-8.9.1_1-win64-mingw/bin/libcurl-x64.dll publish/quake2-win64-${{github.sha}}/curl.dll | |
- name: Upload testbuild package | |
uses: actions/upload-artifact@v4 | |
if: ${{ ! startsWith(github.ref, 'refs/tags/') }} | |
with: | |
name: quake2-win64-${{github.sha}} | |
path: publish/ | |
if-no-files-found: error | |
- name: Create tag package | |
if: ${{ startsWith(github.ref, 'refs/tags/') }} | |
shell: msys2 {0} | |
run: | | |
# create archive | |
mkdir yquake2remaster-${{matrix.env}}-${{github.ref_name}} | |
cp -rv publish/quake2-win64-${{github.sha}}/* yquake2remaster-${{matrix.env}}-${{github.ref_name}} | |
zip -9r yquake2remaster-${{matrix.env}}-${{github.ref_name}}.zip yquake2remaster-${{matrix.env}}-${{github.ref_name}} | |
- name: Upload Release Asset | |
uses: softprops/action-gh-release@v2 | |
if: ${{ startsWith(github.ref, 'refs/tags/') }} | |
with: | |
files: | | |
yquake2remaster-${{matrix.env}}-${{github.ref_name}}.zip |