forked from dhewm/dhewm3
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Github Actions builds for Windows, Linux and macOS
- Loading branch information
1 parent
8863c36
commit 872905f
Showing
3 changed files
with
290 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
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_x86_64: | ||
runs-on: ubuntu-22.04 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- env: ubuntu | ||
steps: | ||
- name: Install build dependencies | ||
run: | | ||
sudo apt update | ||
sudo apt install libgl1-mesa-dev libsdl2-dev libopenal-dev libcurl4-openssl-dev cmake ninja-build | ||
- name: Check out repository code | ||
uses: actions/checkout@v4 | ||
- name: Build | ||
run: | | ||
mkdir build | ||
cd build | ||
# -DFORCE_COLORED_OUTPUT=ON ? didn't seem to work, or at least not visible on website | ||
cmake -G Ninja -DDEDICATED=ON ../neo/ | ||
ninja | ||
- name: Create testbuild package | ||
run: | | ||
# Create release directory tree | ||
export PKGDIR="dhewm3-linux-$(git rev-parse --short HEAD)" | ||
echo "pkgname=$PKGDIR" >> $GITHUB_ENV | ||
mkdir -p publish/$PKGDIR/base | ||
mkdir publish/$PKGDIR/d3xp | ||
# Copy release assets | ||
cd build | ||
cp dhewm3 dhewm3ded base.so d3xp.so ../publish/$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/ | ||
# TODO: prepend to README that executables must be set executable? (and maybe commit, build, arch etc) | ||
echo "dhewm3 for 64bit (amd64 aka x86_64 aka x64) Linux, built $(date)" > publish/$PKGDIR/README.txt | ||
echo -e "from ${{ github.ref_name }} commit ${{ github.sha }}\n" >> publish/$PKGDIR/README.txt | ||
echo "!!! Note that you must set dhewm3(ded) executable !!!" >> publish/$PKGDIR/README.txt | ||
echo "! In a Terminal, in this directory, run:" >> publish/$PKGDIR/README.txt | ||
echo " chmod 755 dhewm3 dhewm3ded" >> publish/$PKGDIR/README.txt | ||
echo -e "(this is because of limitations in Githubs Workflow Actions)\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 | ||
- name: Upload testbuild package | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ env.pkgname }} | ||
path: publish/ | ||
if-no-files-found: error |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
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 sdl2 openal-soft | ||
# not installing make and cmake, cmake is installed by default, make doesn't seem to be needed | ||
# when using cmake --build | ||
- name: Check out repository code | ||
uses: actions/checkout@v4 | ||
- name: Build | ||
run: | | ||
mkdir build | ||
# Note: not building dedicated server because it's not supported on Macs | ||
cmake -DOPENAL_LIBRARY="/opt/homebrew/opt/openal-soft/lib/libopenal.dylib" -DOPENAL_INCLUDE_DIR="/opt/homebrew/opt/openal-soft/include" -S neo/ -B build | ||
cmake --build build | ||
- name: Create testbuild package | ||
run: | | ||
# Create release directory tree | ||
export PKGDIR="dhewm3-macos-$(git rev-parse --short HEAD)" | ||
echo "pkgname=$PKGDIR" >> $GITHUB_ENV | ||
mkdir -p publish/$PKGDIR/base | ||
mkdir publish/$PKGDIR/d3xp | ||
# Copy release assets | ||
cd build | ||
cp -r dhewm3.app ../publish/$PKGDIR/ | ||
cp base.dylib d3xp.dylib ../publish/$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/ | ||
cp README.md publish/$PKGDIR/README.txt | ||
cp Changelog.md publish/$PKGDIR/Changelog.txt | ||
cp Configuration.md publish/$PKGDIR/Configuration.txt | ||
- name: Upload testbuild package | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ env.pkgname }} | ||
path: publish/ | ||
if-no-files-found: error |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
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 |