testbuild_windows #6
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 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 |