2019-10-28 20:53:45 +01:00
name : CI
2022-03-09 21:29:45 +01:00
on :
push :
paths-ignore :
- '.editorconfig'
- '.gitattributes'
- '.github/*_TEMPLATE/**'
- '.github/workflows/localisation.yml'
- '.gitignore'
- '.vscode/**'
pull_request :
paths-ignore :
- '.editorconfig'
- '.gitattributes'
- '.github/*_TEMPLATE/**'
- '.github/workflows/localisation.yml'
- '.gitignore'
- '.vscode/**'
2021-04-15 11:32:14 +02:00
defaults :
run :
shell : bash
2020-01-09 10:53:13 +01:00
env :
2020-01-19 15:04:59 +01:00
OPENRCT2_BUILD_SERVER : GitHub
2020-01-09 10:53:13 +01:00
OPENRCT2_ORG_TOKEN : ${{ secrets.OPENRCT2_ORG_TOKEN }}
2020-03-25 23:36:09 +01:00
BACKTRACE_IO_TOKEN : ${{ secrets.BACKTRACE_IO_TOKEN }}
2024-04-02 22:21:50 +02:00
OPENRCT2_VERSION : 0.4 .10
2022-11-04 08:21:23 +01:00
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-a-fallback-value
concurrency :
group : ${{ github.head_ref || github.run_id }}
cancel-in-progress : true
2019-10-28 20:53:45 +01:00
jobs :
2020-05-02 02:04:06 +02:00
lint-commit :
name : Lint Commit Message
2020-09-09 18:03:45 +02:00
if : github.event_name == 'pull_request'
2020-05-02 02:04:06 +02:00
runs-on : ubuntu-latest
env :
GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2020-05-02 02:04:06 +02:00
with :
fetch-depth : 0
- name : Lint Commit Messages
2023-02-21 13:21:13 +01:00
uses : wagoid/commitlint-github-action@v5
2020-05-02 02:04:06 +02:00
with :
configFile : .commitlint.json
2019-10-31 01:03:05 +01:00
check-code-formatting :
name : Check code formatting
runs-on : ubuntu-latest
2022-03-09 21:19:40 +01:00
container : openrct2/openrct2-build:4-format
2022-03-09 21:23:37 +01:00
defaults :
run :
shell : sh
2019-10-31 01:03:05 +01:00
steps :
2020-01-24 12:46:12 +01:00
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2019-10-31 01:03:05 +01:00
- name : Run clang-format
2020-01-24 12:46:12 +01:00
run : scripts/check-code-formatting
2023-12-20 17:27:06 +01:00
check-changelog-formatting :
name : Check changelog formatting
runs-on : ubuntu-latest
defaults :
run :
shell : bash
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2023-12-20 17:27:06 +01:00
- name : Run check-changelog-formatting
run : scripts/check-changelog-formatting
2024-02-13 20:04:54 +01:00
g2dat :
name : g2.dat
runs-on : ubuntu-latest
steps :
- name : Checkout OpenRCT2
uses : actions/checkout@v4
with :
path : OpenRCT2
- name : Download gxc
run : |
curl -Lo tools.tar.gz https://github.com/IntelOrca/libsawyer/releases/download/v1.3.0/libsawyer-tools-linux-x64.tar.gz
mkdir -p "$GITHUB_WORKSPACE/bin"
tar -C "$GITHUB_WORKSPACE/bin" -xf tools.tar.gz
echo "$GITHUB_WORKSPACE/bin" >> $GITHUB_PATH
- name : Build g2.dat
run : |
gxc build g2.dat OpenRCT2/resources/g2/sprites.json
- name : Upload artifacts
uses : actions/upload-artifact@v4
with :
name : g2.dat
path : g2.dat
2020-01-16 14:17:17 +01:00
windows :
name : Windows
runs-on : windows-latest
2021-04-15 12:00:59 +02:00
needs : check-code-formatting
2020-01-16 14:17:17 +01:00
strategy :
fail-fast : false
matrix :
2023-03-03 23:48:31 +01:00
platform : [ win32, x64, arm64]
2020-01-16 14:17:17 +01:00
env :
PLATFORM : ${{ matrix.platform }}
steps :
2023-03-26 16:50:18 +02:00
- name : Setup environment
run : |
BRANCH=$(echo $GITHUB_REF | cut -d'/' -f 3)
if [[ $BRANCH == 'develop' || $BRANCH == 'master' ]]; then
echo "CONFIGURATION=ReleaseLTCG" >> "$GITHUB_ENV"
else
echo "CONFIGURATION=Release" >> "$GITHUB_ENV"
fi
2020-01-24 12:46:12 +01:00
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2022-04-20 21:37:52 +02:00
- name : Git describe for shallow checkout
id : ghd
2024-02-06 23:29:23 +01:00
uses : proudust/gh-describe@v2
2022-04-20 21:37:52 +02:00
- name : Update GA environment
run : echo "OPENRCT2_DESCRIBE=${{ steps.ghd.outputs.describe }}" >> $GITHUB_ENV
2022-04-01 11:02:48 +02:00
- name : Install MSVC problem matcher
uses : ammaraskar/msvc-problem-matcher@master
2020-01-19 15:04:59 +01:00
- name : Build OpenRCT2
run : . scripts/setenv && build
- name : Build artifacts
2020-01-16 14:17:17 +01:00
run : |
2020-01-19 15:04:59 +01:00
. scripts/setenv -q
build-portable
build-symbols
build-installer -i
2020-01-24 12:46:12 +01:00
- name : Upload artifacts (CI)
2024-02-04 17:40:35 +01:00
uses : actions/upload-artifact@v4
2020-01-16 14:17:17 +01:00
with :
2021-04-15 11:46:59 +02:00
name : OpenRCT2-${{ runner.os }}-${{ matrix.platform }}
path : artifacts
if-no-files-found : error
2020-01-19 15:04:59 +01:00
- name : Run Tests
2022-03-26 20:15:14 +01:00
if : matrix.platform != 'arm64'
2020-01-19 15:04:59 +01:00
run : . scripts/setenv -q && run-tests
2023-04-05 10:17:33 +02:00
- name : Test Summary
uses : test-summary/action@v2
with :
paths : "artifacts/test-**.xml"
if : matrix.platform != 'arm64'
2020-01-16 14:17:17 +01:00
- name : Upload artifacts (openrct2.org)
run : |
2023-03-28 16:04:34 +02:00
. scripts/setenv
2020-01-19 15:04:59 +01:00
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
2023-03-28 19:28:16 +02:00
upload-build artifacts/openrct2-portable-*.zip "windows-portable-$PLATFORM.zip" $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
upload-build artifacts/openrct2-installer-*.exe "windows-installer-$PLATFORM.exe" $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
upload-build artifacts/openrct2-symbols-*.zip "windows-symbols-$PLATFORM.zip" $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
2022-03-09 21:53:23 +01:00
upload-backtrace-symbols artifacts/openrct2-symbols-*.zip
2020-01-19 15:04:59 +01:00
else
echo 'Not going to push build'
2020-01-16 14:17:17 +01:00
fi
2020-01-10 00:26:33 +01:00
windows-mingw :
2021-04-15 12:43:39 +02:00
name : Windows (${{ matrix.platform_name }}) using mingw
2020-09-27 20:30:13 +02:00
runs-on : ubuntu-latest
2021-04-15 12:00:59 +02:00
needs : check-code-formatting
2024-03-11 20:52:17 +01:00
container : openrct2/openrct2-build:14-mingw
2021-04-15 12:43:39 +02:00
strategy :
fail-fast : false
matrix :
2022-05-21 00:05:29 +02:00
platform : [ win32]
2021-04-15 12:43:39 +02:00
include :
- platform : win32
platform_name : win32
cache_key : windows-mingw
2022-05-21 00:05:29 +02:00
build_flags : -DBUILD_SHARED_LIBS=ON -DENABLE_SCRIPTING=ON
2020-09-27 20:30:13 +02:00
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2021-02-09 12:58:23 +01:00
- name : ccache
2024-02-27 21:33:16 +01:00
uses : hendrikmuhs/ccache-action@v1.2.11 # https://github.com/hendrikmuhs/ccache-action/issues/181
2021-02-09 20:25:41 +01:00
with :
2021-04-15 12:43:39 +02:00
key : ${{ matrix.cache_key }}
2022-04-01 11:02:48 +02:00
- name : Install GCC problem matcher
uses : ammaraskar/gcc-problem-matcher@master
2020-09-27 20:30:13 +02:00
- name : Build OpenRCT2
run : |
sudo su
2022-03-09 21:56:33 +01:00
cmake -B bin -G Ninja -DCMAKE_TOOLCHAIN_FILE=../CMakeLists_mingw.txt -DCMAKE_BUILD_TYPE=Release -DDISABLE_IPO=on -DFORCE32=on ${{ matrix.build_flags }}
cd bin
2020-09-27 20:30:13 +02:00
ninja -k0
- name : Upload artifacts (CI)
2021-04-15 12:43:39 +02:00
if : matrix.platform == 'NT5.1'
2024-02-04 17:40:35 +01:00
uses : actions/upload-artifact@v4
2020-09-27 20:30:13 +02:00
with :
2022-03-09 21:56:33 +01:00
name : OpenRCT2-Windows-${{ matrix.platform }}
2020-09-27 20:30:13 +02:00
path : bin/openrct2.exe
2021-04-15 11:46:59 +02:00
if-no-files-found : error
2021-01-03 05:15:40 +01:00
macos-cmake :
2021-09-16 04:33:14 +02:00
name : macOS (${{ matrix.arch }}) using CMake
2024-04-25 14:03:33 +02:00
runs-on : macos-12
2021-04-15 12:00:59 +02:00
needs : check-code-formatting
2021-09-13 01:33:34 +02:00
strategy :
fail-fast : false
matrix :
2021-09-16 04:33:14 +02:00
arch : [ x64, arm64]
2021-09-13 01:33:34 +02:00
include :
2021-09-16 04:33:14 +02:00
- arch : x64
2021-09-13 01:33:34 +02:00
cache_key : macos-x64
2021-09-16 04:33:14 +02:00
# Note: only build/run tests on the native architecture of the CI agent
2024-04-25 14:03:33 +02:00
# GitHub macos-12 agents are all Intel, but as of 2024-04-25 new images, e.g. macos-14 (current macos-latest) are arm64
# See https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
2021-09-13 01:33:34 +02:00
build_flags : -DARCH="x86_64" -DWITH_TESTS=on
run_tests : true
- arch : arm64
cache_key : macos-arm64
build_flags : -DARCH="arm64"
run_tests : false
2021-01-03 05:15:40 +01:00
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2021-02-10 22:35:04 +01:00
- name : ccache
2024-02-27 21:33:16 +01:00
uses : hendrikmuhs/ccache-action@v1.2.11 # https://github.com/hendrikmuhs/ccache-action/issues/181
2021-02-10 22:35:04 +01:00
with :
2021-09-13 01:33:34 +02:00
key : ${{ matrix.cache_key }}
2023-05-06 12:03:26 +02:00
- name : Configure ccache
run : |
# See https://github.com/hendrikmuhs/ccache-action/issues/146
ccache --set-config=compiler_check=content
2022-04-01 11:02:48 +02:00
- name : Install GCC problem matcher
uses : ammaraskar/gcc-problem-matcher@master
2021-01-03 05:15:40 +01:00
- name : Build OpenRCT2
2021-01-10 08:49:04 +01:00
run : |
2023-02-19 22:29:25 +01:00
HOMEBREW_NO_ANALYTICS=1 brew install ninja pkg-config
2021-09-13 01:33:34 +02:00
. scripts/setenv -q && build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=on ${{ matrix.build_flags }}
2021-01-10 08:49:04 +01:00
- name : Build artifacts
2021-03-14 05:45:58 +01:00
run : |
. scripts/setenv
mkdir -p artifacts
mv bin/OpenRCT2.app artifacts
echo -e "\033[0;36mCompressing OpenRCT2.app...\033[0m"
cd artifacts
2021-03-21 23:42:19 +01:00
zip -rqy openrct2-macos.zip OpenRCT2.app
2021-03-14 05:45:58 +01:00
- name : Upload artifacts (CI)
2024-02-04 17:40:35 +01:00
uses : actions/upload-artifact@v4
2021-03-14 05:45:58 +01:00
with :
2021-09-13 01:33:34 +02:00
name : OpenRCT2-${{ runner.os }}-${{ matrix.arch }}-cmake
path : artifacts/openrct2-macos.zip
if-no-files-found : error
2023-11-02 18:43:00 +01:00
- name : Run Tests
if : ${{matrix.run_tests}}
run : . scripts/setenv -q && run-tests
- name : Test Summary
uses : test-summary/action@v2
with :
paths : "artifacts/test-**.xml"
if : ${{matrix.run_tests}}
2021-09-13 01:33:34 +02:00
macos-universal :
name : macOS universal app bundle
2024-04-25 14:03:33 +02:00
runs-on : macos-12
2021-09-13 01:33:34 +02:00
needs : macos-cmake
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2021-09-13 01:33:34 +02:00
- name : download x64 app bundle
2024-02-04 17:40:35 +01:00
uses : actions/download-artifact@v4
2021-09-13 01:33:34 +02:00
with :
2021-09-16 04:33:14 +02:00
name : OpenRCT2-${{ runner.os }}-x64-cmake
2021-09-13 01:33:34 +02:00
path : macos_universal/x64
- name : download arm64 app bundle
2024-02-04 17:40:35 +01:00
uses : actions/download-artifact@v4
2021-09-13 01:33:34 +02:00
with :
name : OpenRCT2-${{ runner.os }}-arm64-cmake
path : macos_universal/arm64
- name : Make Universal app bundle
run : |
. scripts/setenv
cd macos_universal
unzip x64/openrct2-macos.zip -d x64
unzip arm64/openrct2-macos.zip -d arm64
create-macos-universal
- name : Create artifact
run : |
. scripts/setenv
mkdir -p artifacts
mv macos_universal/OpenRCT2-universal.app artifacts/OpenRCT2.app
echo -e "\033[0;36mCompressing OpenRCT2.app...\033[0m"
cd artifacts
zip -rqy openrct2-macos.zip OpenRCT2.app
- name : Upload artifacts (CI)
2024-02-04 17:40:35 +01:00
uses : actions/upload-artifact@v4
2021-09-13 01:33:34 +02:00
with :
name : OpenRCT2-${{ runner.os }}-universal
2021-03-21 23:42:19 +01:00
path : artifacts/openrct2-macos.zip
2021-04-15 11:46:59 +02:00
if-no-files-found : error
2021-10-10 07:25:36 +02:00
- name : Upload artifacts (openrct2.org)
run : |
. scripts/setenv
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
2023-03-06 01:25:55 +01:00
upload-build artifacts/openrct2-macos.zip macos-universal.zip $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
2021-10-10 07:25:36 +02:00
else
2022-03-09 21:53:23 +01:00
echo 'Not going to push build'
2021-10-10 07:25:36 +02:00
fi
2020-01-24 12:46:12 +01:00
linux-portable :
2024-03-28 00:37:32 +01:00
name : ${{ matrix.distro }} Linux (${{ matrix.release }}, ${{ matrix.platform }}, portable)
2019-10-28 20:53:45 +01:00
runs-on : ubuntu-latest
2021-04-15 12:00:59 +02:00
needs : check-code-formatting
2022-03-09 21:19:40 +01:00
container : ${{ matrix.image }}
2021-04-15 12:43:39 +02:00
strategy :
fail-fast : false
matrix :
include :
2023-03-06 14:45:02 +01:00
# Use `-fno-var-tracking-assignments` to reduce amount of produced debug information. This is necessary due to 100MiB limit of GitHub / openrct2.org API.
2022-04-01 07:42:50 +02:00
- platform : x86_64
2024-03-28 00:37:32 +01:00
distro : Ubuntu
release : jammy
2024-03-11 20:52:17 +01:00
image : openrct2/openrct2-build:14-jammy
2023-03-06 14:45:02 +01:00
build_flags : -DCMAKE_POSITION_INDEPENDENT_CODE=on -DCMAKE_CXX_FLAGS="-g -gz -fno-var-tracking-assignments"
2022-01-06 00:09:24 +01:00
- platform : x86_64
2024-03-28 00:37:32 +01:00
distro : Debian
release : bullseye
2024-03-11 20:52:17 +01:00
image : openrct2/openrct2-build:14-bullseye
2023-02-21 22:25:36 +01:00
build_flags : -DCMAKE_POSITION_INDEPENDENT_CODE=on -DCMAKE_CXX_FLAGS="-g -gz -fno-var-tracking-assignments" -DWITH_TESTS=off
2021-04-15 12:43:39 +02:00
- platform : i686
2024-03-28 00:37:32 +01:00
distro : Ubuntu
release : jammy
2024-03-28 00:34:01 +01:00
image : openrct2/openrct2-build:14-jammy32
build_flags : -DFORCE32=ON -DENABLE_SCRIPTING=OFF -DCMAKE_CXX_FLAGS="-m32 -g -gz" -DWITH_TESTS=off
2020-01-24 12:46:12 +01:00
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2021-02-09 12:58:23 +01:00
- name : ccache
2024-02-27 21:33:16 +01:00
uses : hendrikmuhs/ccache-action@v1.2.11 # https://github.com/hendrikmuhs/ccache-action/issues/181
2021-02-09 20:25:41 +01:00
with :
2022-01-06 13:20:11 +01:00
key : linux-${{ matrix.platform }}-${{ matrix.distro }}
2020-01-24 12:46:12 +01:00
- name : Get pre-reqs
run : . scripts/setenv && get-discord-rpc
2022-04-01 11:02:48 +02:00
- name : Install GCC problem matcher
uses : ammaraskar/gcc-problem-matcher@master
2019-10-28 20:53:45 +01:00
- name : Build OpenRCT2
2021-04-15 12:43:39 +02:00
run : . scripts/setenv -q && build -DWITH_TESTS=on -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DPORTABLE=ON ${{ matrix.build_flags }}
2020-01-24 12:46:12 +01:00
- name : Build artifacts
2022-01-06 00:09:24 +01:00
run : . scripts/setenv -q && build-portable artifacts/OpenRCT2-${{ runner.os }}-${{ matrix.distro }}-${{ matrix.platform }}.tar.gz bin/install/usr
2020-01-24 12:46:12 +01:00
- name : Upload artifacts (CI)
2024-02-04 17:40:35 +01:00
uses : actions/upload-artifact@v4
2020-01-24 12:46:12 +01:00
with :
2022-01-06 00:09:24 +01:00
name : OpenRCT2-${{ runner.os }}-${{ matrix.distro }}-${{ matrix.platform }}
2020-01-24 12:46:12 +01:00
path : artifacts
2021-04-15 11:46:59 +02:00
if-no-files-found : error
2020-01-24 12:46:12 +01:00
- name : Run Tests
run : . scripts/setenv -q && run-tests
2023-04-05 10:17:33 +02:00
2020-01-24 12:46:12 +01:00
- name : Upload artifacts (openrct2.org)
2019-10-28 20:53:45 +01:00
run : |
2022-05-22 23:39:52 +02:00
# Build identification code: https://github.com/Limetric/OpenRCT2.org/blob/e5b738f3dadcc5a3b78e8dfd434756ff31eaa1d3/src/misc/releaseAsset.js#L94-L116
2020-01-24 12:46:12 +01:00
. scripts/setenv -q
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
2023-03-06 01:25:55 +01:00
upload-build artifacts/OpenRCT2-${{ runner.os }}-${{ matrix.distro }}-${{ matrix.platform }}.tar.gz linux-${{ matrix.platform }}-${{ matrix.distro }}.tar.gz $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
2020-01-24 12:46:12 +01:00
else
2022-03-09 21:53:23 +01:00
echo 'Not going to push build'
2020-01-24 12:46:12 +01:00
fi
linux-appimage :
2024-03-28 00:37:32 +01:00
name : Ubuntu Linux (AppImage, x86_64)
2020-01-24 12:46:12 +01:00
runs-on : ubuntu-latest
2021-04-15 12:00:59 +02:00
needs : check-code-formatting
2024-03-28 00:34:01 +01:00
container : openrct2/openrct2-build:14-jammy
2020-01-24 12:46:12 +01:00
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2021-02-09 12:58:23 +01:00
- name : ccache
2024-02-27 21:33:16 +01:00
uses : hendrikmuhs/ccache-action@v1.2.11 # https://github.com/hendrikmuhs/ccache-action/issues/181
2021-02-09 20:25:41 +01:00
with :
key : linux-appimage
2020-01-24 12:46:12 +01:00
- name : Get pre-reqs
run : . scripts/setenv -q && get-discord-rpc
- name : Build OpenRCT2
2021-02-09 13:27:09 +01:00
run : . scripts/setenv -q && build -DCMAKE_BUILD_TYPE=Release -DAPPIMAGE=ON -DOPENRCT2_USE_CCACHE=on
2019-10-28 20:53:45 +01:00
- name : Build AppImage
2020-01-24 12:46:12 +01:00
run : . scripts/setenv -q && build-appimage
- name : Upload artifacts (CI)
2024-02-04 17:40:35 +01:00
uses : actions/upload-artifact@v4
2019-10-28 20:53:45 +01:00
with :
name : OpenRCT2-AppImage
2020-01-24 12:46:12 +01:00
path : artifacts
2021-04-15 11:46:59 +02:00
if-no-files-found : error
2023-02-28 20:01:42 +01:00
- name : Upload artifacts (openrct2.org)
run : |
# Build identification code: https://github.com/Limetric/OpenRCT2.org/blob/e5b738f3dadcc5a3b78e8dfd434756ff31eaa1d3/src/misc/releaseAsset.js#L94-L116
. scripts/setenv -q
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
2023-03-06 18:48:23 +01:00
upload-build artifacts/OpenRCT2-x86_64.AppImage linux.AppImage $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
2023-02-28 20:01:42 +01:00
else
echo 'Not going to push build'
fi
2020-01-27 15:50:39 +01:00
linux-docker :
2024-03-28 00:37:32 +01:00
name : Ubuntu Linux (Docker)
2021-04-15 12:00:59 +02:00
needs : check-code-formatting
2020-07-06 18:52:38 +02:00
if : github.repository == 'OpenRCT2/OpenRCT2'
2020-01-27 15:50:39 +01:00
runs-on : ubuntu-latest
steps :
2021-04-15 11:50:22 +02:00
- name : Checkout image
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2021-04-15 11:50:22 +02:00
with :
repository : OpenRCT2/openrct2-docker
2020-01-27 15:50:39 +01:00
- name : Build image
2021-04-15 11:50:22 +02:00
run : docker build -t openrct2/openrct2-cli:develop develop/cli
2020-01-27 15:50:39 +01:00
- name : Push image
env :
OPENRCT2_DOCKER_USER : ${{ secrets.OPENRCT2_DOCKER_USER }}
OPENRCT2_DOCKER_PASS : ${{ secrets.OPENRCT2_DOCKER_PASS }}
run : |
OPENRCT2_BRANCH=$(echo "$GITHUB_REF" | sed 's/refs\/heads\///')
echo "Current branch is $OPENRCT2_BRANCH"
if [ "$OPENRCT2_BRANCH" = 'develop' ]; then
2022-03-09 21:53:23 +01:00
docker login -u "$OPENRCT2_DOCKER_USER" -p "$OPENRCT2_DOCKER_PASS"
docker push openrct2/openrct2-cli:develop
2020-01-27 15:50:39 +01:00
else
2022-03-09 21:53:23 +01:00
echo 'Image not pushed'
2020-01-27 15:50:39 +01:00
fi
2020-01-24 12:46:12 +01:00
linux-clang :
2024-03-28 00:37:32 +01:00
name : Ubuntu Linux (jammy, debug, [http, network, flac, vorbis OpenGL] disabled) using clang
2020-01-24 12:46:12 +01:00
runs-on : ubuntu-latest
2021-04-15 12:00:59 +02:00
needs : check-code-formatting
2024-03-11 20:52:17 +01:00
container : openrct2/openrct2-build:14-jammy
2020-01-24 12:46:12 +01:00
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2021-02-09 12:58:23 +01:00
- name : ccache
2024-02-27 21:33:16 +01:00
uses : hendrikmuhs/ccache-action@v1.2.11 # https://github.com/hendrikmuhs/ccache-action/issues/181
2021-02-09 20:25:41 +01:00
with :
key : linux-clang
2022-04-01 11:02:48 +02:00
- name : Install GCC problem matcher
uses : ammaraskar/gcc-problem-matcher@master
2020-01-24 12:46:12 +01:00
- name : Build OpenRCT2
2022-05-15 18:16:36 +02:00
run : . scripts/setenv && build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Debug -DDISABLE_NETWORK=ON -DDISABLE_HTTP=ON -DDISABLE_FLAC=ON -DDISABLE_VORBIS=ON -DDISABLE_OPENGL=ON
2023-04-04 08:54:19 +02:00
linux-clang-tests :
2024-03-28 00:37:32 +01:00
name : Ubuntu Linux (debug) using clang, coverage enabled
2023-04-04 08:54:19 +02:00
runs-on : ubuntu-latest
needs : check-code-formatting
2024-03-11 20:52:17 +01:00
container : openrct2/openrct2-build:14-jammy
2023-04-04 08:54:19 +02:00
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2023-04-04 08:54:19 +02:00
- name : ccache
2024-02-27 21:33:16 +01:00
uses : hendrikmuhs/ccache-action@v1.2.11 # https://github.com/hendrikmuhs/ccache-action/issues/181
2023-04-04 08:54:19 +02:00
with :
key : linux-clang
- name : Install GCC problem matcher
uses : ammaraskar/gcc-problem-matcher@master
- name : Build OpenRCT2
run : . scripts/setenv && build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-fprofile-instr-generate -fcoverage-mapping" -DWITH_TESTS=on
- name : Run Tests
run : . scripts/setenv -q && LLVM_PROFILE_FILE="openrct2-coverage-%p.profraw" run-tests
2023-04-05 10:17:33 +02:00
- name : Test Summary
uses : test-summary/action@v2
with :
paths : "artifacts/test-**.xml"
if : always()
2023-04-04 08:54:19 +02:00
- name : Process coverage information
run : |
cd bin
llvm-profdata merge -sparse openrct2-coverage*profraw -o openrct2.profdata
llvm-cov export -instr-profile=openrct2.profdata ./OpenRCT2Tests > coverage.json
2023-04-04 09:56:20 +02:00
llvm-cov report ./OpenRCT2Tests -instr-profile=openrct2.profdata
2023-04-04 08:54:19 +02:00
xz -1v openrct2.profdata
xz -1v coverage.json
2023-04-04 09:56:31 +02:00
xz -1v OpenRCT2Tests
2023-04-04 08:54:19 +02:00
- name : Upload artifacts (CI)
2024-02-04 17:40:35 +01:00
uses : actions/upload-artifact@v4
2023-04-04 08:54:19 +02:00
with :
name : OpenRCT2-${{ runner.os }}-coverage
path : |
bin/*profdata*
bin/coverage.json*
2023-04-04 09:56:31 +02:00
bin/OpenRCT2Tests.xz
2023-04-04 08:54:19 +02:00
if-no-files-found : error
2020-01-31 09:02:11 +01:00
android :
name : Android
runs-on : ubuntu-latest
2021-04-15 12:00:59 +02:00
needs : check-code-formatting
2024-03-11 20:52:17 +01:00
container : openrct2/openrct2-build:14-android
2020-01-31 09:02:11 +01:00
steps :
- name : Checkout
2024-02-04 17:40:35 +01:00
uses : actions/checkout@v4
2021-02-09 13:27:09 +01:00
- name : ccache
2024-02-27 21:33:16 +01:00
uses : hendrikmuhs/ccache-action@v1.2.11 # https://github.com/hendrikmuhs/ccache-action/issues/181
2021-02-09 20:25:41 +01:00
with :
key : android
2022-04-01 11:02:48 +02:00
- name : Install GCC problem matcher
uses : ammaraskar/gcc-problem-matcher@master
2020-01-31 09:02:11 +01:00
- name : Build OpenRCT2
2020-02-01 16:41:24 +01:00
run : |
. scripts/setenv
pushd src/openrct2-android
2021-12-18 23:38:15 +01:00
./gradlew app:assembleRelease
2020-02-01 16:41:24 +01:00
popd
mkdir -p artifacts
2021-12-18 00:03:38 +01:00
mv src/openrct2-android/app/build/outputs/apk/release/app-release.apk artifacts/openrct2-arm.apk
2020-01-31 09:02:11 +01:00
- name : Upload artifacts (CI)
2024-02-04 17:40:35 +01:00
uses : actions/upload-artifact@v4
2020-01-31 09:02:11 +01:00
with :
2021-04-15 11:46:59 +02:00
name : OpenRCT2-Android
2020-02-01 16:41:24 +01:00
path : artifacts
2021-04-15 11:46:59 +02:00
if-no-files-found : error
2020-02-01 17:47:49 +01:00
- name : Upload artifacts (openrct2.org)
run : |
. scripts/setenv -q
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
2023-03-06 01:25:55 +01:00
upload-build artifacts/openrct2-arm.apk android-arm.apk $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
2020-02-01 17:47:49 +01:00
else
2022-03-09 21:53:23 +01:00
echo 'Not going to push build'
2020-02-01 17:47:49 +01:00
fi