name: Testbuild for x86 and x86_64 Windows run-name: testbuild_windows 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_win_x86_msvc: runs-on: windows-latest defaults: run: # use git bash for for all steps (unless specified otherwise per step) shell: bash strategy: fail-fast: false steps: - name: Install build dependencies run: | # Download and extract dhewm3-libs #echo $PWD # /d/a/dhewm3/dhewm3 # as the repo will be cloned into the directory we're currently in (O_o) # go one directory up to D:\a\dhewm3\ and put the dhewm3libs there cd .. # https://github.com/dhewm/dhewm3-libs/archive/refs/heads/master.zip # for some reason the following downloads an empty file, so use the other URL I got from # "Copy Download Link" in Firefox (after downloading the file there) instead #curl -o dhewm3libs.zip https://github.com/dhewm/dhewm3-libs/archive/refs/heads/master.zip curl -o dhewm3libs.zip https://codeload.github.com/dhewm/dhewm3-libs/zip/refs/heads/master # only unpack the stuff needed (no x86_64 stuff, no docs from share/) unzip dhewm3libs.zip "dhewm3-libs-master/i686-w64-mingw32/**" -x "dhewm3-libs-master/i686-w64-mingw32/share/**" - name: Check out repository code uses: actions/checkout@v4 - name: Build run: | # build with cmake and visual studio #echo $PWD # /d/a/dhewm3/dhewm3 # NOTE: not setting -G "Visual Studio 17 2022" so it just uses the default VS version it can find cmake -A Win32 -DDHEWM3LIBS="../dhewm3-libs-master/i686-w64-mingw32/" -DDEDICATED=ON -DTOOLS=ON -S neo/ -B build time cmake --build build/ --config RelWithDebInfo - name: Create testbuild package run: | # Create release directory tree export PKGDIR="dhewm3-win32-$(git rev-parse --short HEAD)" echo "pkgname=$PKGDIR" >> $GITHUB_ENV mkdir -p publish/$PKGDIR/base mkdir publish/$PKGDIR/d3xp # debug symbols (*.pdb) are put in a separate zip mkdir -p debug-syms/$PKGDIR # Copy release assets cd build/RelWithDebInfo cp dhewm3.exe dhewm3ded.exe base.dll d3xp.dll ../../publish/$PKGDIR/ cp -r *.pdb ../../debug-syms/$PKGDIR/ cd ../.. # Copy misc assets cp base/gamepad.cfg publish/$PKGDIR/base/ cp base/gamepad-d3xp.cfg publish/$PKGDIR/d3xp/ cp COPYING.txt publish/$PKGDIR/ echo "dhewm3 for 32bit (x86) Windows, built $(date)" > publish/$PKGDIR/README.txt echo -e "from ${{ github.ref_name }} commit ${{ github.sha }}\n" >> publish/$PKGDIR/README.txt cat README.md >> publish/$PKGDIR/README.txt cp Changelog.md publish/$PKGDIR/Changelog.txt cp Configuration.md publish/$PKGDIR/Configuration.txt # copy runtime libraries (SDL, OpenAL, cURL) cd ../dhewm3-libs-master/i686-w64-mingw32/bin/ cp OpenAL32.dll SDL2.dll libcurl-4.dll ../../../dhewm3/publish/$PKGDIR/ cd - - name: Upload testbuild package uses: actions/upload-artifact@v4 with: name: ${{ env.pkgname }} path: publish/ if-no-files-found: error - name: Upload testbuild debug symbols uses: actions/upload-artifact@v4 with: name: ${{ env.pkgname }}-debugsyms path: debug-syms/ if-no-files-found: error build_win_x86_64_msvc: runs-on: windows-latest defaults: run: # use git bash for for all steps (unless specified otherwise per step) shell: bash strategy: fail-fast: false steps: - name: Install build dependencies run: | # Download and extract dhewm3-libs #echo $PWD # /d/a/dhewm3/dhewm3 # as the repo will be cloned into the directory we're currently in (O_o) # go one directory up to D:\a\dhewm3\ and put the dhewm3libs there cd .. # https://github.com/dhewm/dhewm3-libs/archive/refs/heads/master.zip # for some reason the following downloads an empty file, so use the other URL I got from # "Copy Download Link" in Firefox (after downloading the file there) instead #curl -o dhewm3libs.zip https://github.com/dhewm/dhewm3-libs/archive/refs/heads/master.zip curl -o dhewm3libs.zip https://codeload.github.com/dhewm/dhewm3-libs/zip/refs/heads/master # only unpack the stuff needed (no i686 stuff, no docs from share/) unzip dhewm3libs.zip "dhewm3-libs-master/x86_64-w64-mingw32/**" -x "dhewm3-libs-master/x86_64-w64-mingw32/share/**" - name: Check out repository code uses: actions/checkout@v4 - name: Build run: | # build with cmake and visual studio #echo $PWD # /d/a/dhewm3/dhewm3 # NOTE: not setting -G "Visual Studio 17 2022" so it just uses the default VS version it can find cmake -A x64 -DDHEWM3LIBS="../dhewm3-libs-master/x86_64-w64-mingw32/" -DDEDICATED=ON -DTOOLS=ON -S neo/ -B build time cmake --build build/ --config RelWithDebInfo - name: Create testbuild package run: | # Create release directory tree export PKGDIR="dhewm3-win64-$(git rev-parse --short HEAD)" echo "pkgname=$PKGDIR" >> $GITHUB_ENV #echo "PKGDIR is $PKGDIR" mkdir -p publish/$PKGDIR/base mkdir publish/$PKGDIR/d3xp # debug symbols (*.pdb) are put in a separate zip mkdir -p debug-syms/$PKGDIR # Copy release assets cd build/RelWithDebInfo cp dhewm3.exe dhewm3ded.exe base.dll d3xp.dll ../../publish/$PKGDIR/ cp -r *.pdb ../../debug-syms/$PKGDIR/ cd ../.. # Copy misc assets cp base/gamepad.cfg publish/$PKGDIR/base/ cp base/gamepad-d3xp.cfg publish/$PKGDIR/d3xp/ cp COPYING.txt publish/$PKGDIR/ echo "dhewm3 for 64bit (amd64 aka x86_64 aka x64) Windows, built $(date)" > publish/$PKGDIR/README.txt echo -e "from ${{ github.ref_name }} commit ${{ github.sha }}\n" >> publish/$PKGDIR/README.txt cat README.md >> publish/$PKGDIR/README.txt cp Changelog.md publish/$PKGDIR/Changelog.txt cp Configuration.md publish/$PKGDIR/Configuration.txt # copy runtime libraries (SDL, OpenAL, cURL) cd ../dhewm3-libs-master/x86_64-w64-mingw32/bin/ cp OpenAL32.dll SDL2.dll libcurl-4.dll ../../../dhewm3/publish/$PKGDIR/ cd - - name: Upload testbuild package uses: actions/upload-artifact@v4 with: name: ${{ env.pkgname }} path: publish/ if-no-files-found: error - name: Upload testbuild debug symbols uses: actions/upload-artifact@v4 with: name: ${{ env.pkgname }}-debugsyms path: debug-syms/ if-no-files-found: error