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 }}
|
Release v0.4.2
- Feature: [#6326] Ability to load .SV6 files from RCT Classic that have more than 9601 guests.
- Feature: [#6570, #10860, #17929] Fully support RollerCoaster Tycoon Classic as a RCT2 base install path.
- Feature: [#13634] Add ability to sell merchandise in random colours.
- Feature: [#16164] Add new track elements for Flying Coaster and Lay-Down Coaster and add paint code for more elements.
- Feature: [#16283] Added parkinfo command line tool to list objects in a save file.
- Feature: [#16662] Show a warning message when g2.dat is mismatched.
- Feature: [#17107] Ride operating settings can be set via text input.
- Feature: [#17638] Added Zero G rolls, medium loops and large corkscrews to the Hybrid and Single-Rail coasters.
- Feature: [#17821] [Plugin] Add API for track subpositions and vehicle subposition.
- Feature: [#17877] Add three real-life flying roller coaster colour schemes.
- Feature: [#17900] Add “Classic Wooden Coaster” with shallow banked turns.
- Feature: [#18057] Staff members now wait for passing or stalled vehicles before crossing railway tracks.
- Feature: [#18168] Add additional track pieces to the LIM Launched Coaster and the Looping Coaster.
- Feature: [objects#198] Add additional pirate roofs.
- Feature: [objects#205] Add additional glass roofs.
- Feature: [objects#209] Add the Steel Roller Coaster train and 2-across Inverted Train from RollerCoaster Tycoon 1.
- Feature: [#18050] Add asset pack manager and asset packs.
- Improved: [#15358] Park and scenario names can now contain up to 128 characters.
- Improved: [#15589] Numpad Enter can now be used to close text input.
- Improved: [#16819] Don’t prompt to “Save game as” when saving a loaded saved game (excepting autosaves).
- Improved: [#16840] Add support for rectangular heightmaps.
- Improved: [#17575] You can now search for Authors in Object Selection.
- Improved: [#17806] Added warning when using RCT1 objects without RCT1 linked.
- Improved: [#17868] [Plugin] You can now change active tab of a custom window programmatically.
- Improved: [#17909] Track elements that are not supported by any train are now hidden by default.
- Improved: [#17924] Improved performance when loading JSON object images from a .DAT file.
- Improved: [#17955] Modifying ratings via in-game console is now multiplayer-safe and also freezes the ratings.
- Improved: [#18177] [Plugin] Widget tooltips can now be read and changed.
- Change: [#9104] Calculate maze support costs.
- Change: [#17319] Giant screenshots are now cropped to the horizontal view-clipping selection.
- Change: [#17499] Update error text when using vehicle incompatible with TD6 and add error when using incompatible track elements.
- Change: [#17655] Lower default price for the Crooked House.
- Change: [#17745] Make maintenance cost of Mini-Golf more balanced.
- Change: [#17762] Use vertical tabs in the New Game dialog.
- Change: [#18113] Increased limit of Loan Interest in Scenario Editor to 255%.
- Fix: [#5141] Headless server is counted as a player.
- Fix: [#7466] Coaster track not drawn at tunnel exit.
- Fix: [#10535] Guests getting stuck at specific level crossings.
- Fix: [#14337] Guest blocking ride entrance after ride price changed to be unaffordable.
- Fix: [#15328] Wooden Roller Coaster incorrectly draws a railing on the first station piece (original bug).
- Fix: [#16392] Scenery on sloped surface is placed at wrong height.
- Fix: [#16476] The game sometimes crashes when demolishing a maze.
- Fix: [#17053] Crash when trying to open files under 4 bytes in length.
- Fix: [#17312] (Flying) Inline Twist appearing under the surface when placed on ground level.
- Fix: [#17339] Distorted visuals when changing scaling factor between integer numbers in OpenGL rendering mode.
- Fix: [#17394] Six-seater Hyper-Twister Trains focuses ride window camera on Car 2 rather than Car 1 (original bug).
- Fix: [#17430] Possible crash when toggling tile element visibility in multiplayer.
- Fix: [#17444] “Manta Ray” boats slowed down too much in “Ayers Rock” scenario (original bug).
- Fix: [#17503] Parks with staff with an ID of 0 have all staff windows focus on that staff.
- Fix: [#17508] Grid doesn’t disable after setting patrol area.
- Fix: [#17532] Object Selection window allows unselecting all station types.
- Fix: [#17533] Missing audio when specifying ‘--rct2-data-path’.
- Fix: [#17535] Multiplayer desync when placing rides with scenery.
- Fix: [#17541] Station style not correctly saved to TD6.
- Fix: [#17542] Stalls will autorotate towards paths outside the park.
- Fix: [#17544, #17754] Visual glitches in Invention List window.
- Fix: [#17553] Crash when moving invention list items to empty list.
- Fix: [#17571] All researched tracked rides show up as new vehicles in .park scenarios.
- Fix: [#17600] Notifications are not properly cleared when loading a park.
- Fix: [#17605] Crash when opening parks which have had objects removed externally.
- Fix: [#17639, 17735] When building upside down, the special elements list contains many items twice (original bug).
- Fix: [#17664] Unable to save after an extended period of time due to inactive ride music data leaking.
- Fix: [#17703] (undefined string) when building on invalid height.
- Fix: [#17776] “Other Parks” tab uses separate lists for SC4/SC6 and .park scenarios.
- Fix: [#17784] Colour preset RNG is biased (original bug).
- Fix: [#17788] Guests could leave queue if another guest rejoins it from the entrance building.
- Fix: [#17834] Finance window becomes blank after 4096 years.
- Fix: [#17816] Option to pause game when Steam Overlay is active is not greyed out when using the OpenGL renderer.
- Fix: [#17897] Guest can get stuck on tiles with construction rights outside the park.
- Fix: [#17904] Trees are removed at no cost to make way for ride entrance/exits.
- Fix: [#17905] The chain button in the map window is enabled for rectangular maps when (re)opened.
- Fix: [#17931] The in-game command ‘count_objects’ crashes the game.
- Fix: [#17865] With difficult guest generation, tested but unopened rides still contribute to the guest cap.
- Fix: [#17866] [Plugin] Wrong Soft Guest Cap at start of new game.
- Fix: [#17889] Peeps don’t stop at level railway crossings if approached from downhill.
- Fix: [#17980] Queue lines of track designs mess up existing queue lines if dragged through them.
- Fix: [#17959] Areas marked for dirty drawing are too large.
- Fix: [#17963] Some marketing campaigns can’t be started after Finances window tab has been on Research.
- Fix: [#17964] Sprites don’t show up on two sides of the view-clip selection.
- Fix: [#17966] Reversed steel trains do not properly import from S4.
- Fix: [#17973] Bins and lamps overlay parts of the land (original bug).
- Fix: [#18008] Steeplechase S-bends has multiple gaps visible in the tracks (original bug).
- Fix: [#18009] Visual glitch with litter at edge of sloped path.
- Fix: [#18025] Fix land ownership in Six Holland, Six Flags Magic Mountain, North America - Grand Canyon and Asia - Great Wall of China Tourism Enhancement scenarios.
- Fix: [#18026] Park rating drops to 0 with more than 32k guests, total ride excitement or intensity.
- Fix: [#18032] All non-interactive widgets (labels, groupboxes) produce sound when clicked.
- Fix: [#18035] Favourited servers don’t get their online status updated.
- Fix: [#18051] Visual glitch with Mine Ride’s large unbanked turn (original bug).
- Fix: [#18059] [Plugin] Width and height of custom window not changeable via script.
- Fix: [#18063] Guests can stop for all kinds of actions at railway crossing.
- Fix: [#18087] Bank balance is clamped to a 32-bit integer every transaction.
2022-10-05 12:07:57 +02:00
|
|
|
OPENRCT2_VERSION: 0.4.2
|
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
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
2020-05-02 02:04:06 +02:00
|
|
|
with:
|
|
|
|
fetch-depth: 0
|
|
|
|
- name: Lint Commit Messages
|
2021-04-15 12:45:22 +02:00
|
|
|
uses: wagoid/commitlint-github-action@v3
|
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
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
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
|
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:
|
2022-05-07 23:49:38 +02:00
|
|
|
platform: [win32, x64]
|
2020-01-16 14:17:17 +01:00
|
|
|
env:
|
|
|
|
CONFIGURATION: Release
|
|
|
|
PLATFORM: ${{ matrix.platform }}
|
|
|
|
steps:
|
2020-01-24 12:46:12 +01:00
|
|
|
- name: Checkout
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
2022-04-20 21:37:52 +02:00
|
|
|
- name: Git describe for shallow checkout
|
|
|
|
id: ghd
|
|
|
|
uses: proudust/gh-describe@v1
|
|
|
|
- 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)
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
2020-01-16 14:17:17 +01:00
|
|
|
- name: Upload artifacts (openrct2.org)
|
|
|
|
run: |
|
2020-01-19 15:04:59 +01:00
|
|
|
. scripts/setenv -q
|
|
|
|
if [[ "$OPENRCT2_PUSH" == "true" ]]; then
|
2022-03-09 21:53:23 +01:00
|
|
|
upload-build artifacts/openrct2-portable-*.zip "windows-portable-$PLATFORM" $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
|
|
|
upload-build artifacts/openrct2-installer-*.exe "windows-installer-$PLATFORM" $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
|
|
|
upload-build artifacts/openrct2-symbols-*.zip "windows-symbols-$PLATFORM" $OPENRCT2_VERSION $OPENRCT2_SHA1 $OPENRCT2_BRANCH
|
|
|
|
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
|
2022-04-01 07:42:50 +02:00
|
|
|
container: openrct2/openrct2-build:8-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
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
2021-02-09 12:58:23 +01:00
|
|
|
- name: ccache
|
|
|
|
uses: hendrikmuhs/ccache-action@v1
|
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'
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
2021-01-03 05:15:40 +01:00
|
|
|
runs-on: macos-latest
|
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
|
2022-03-09 21:21:59 +01:00
|
|
|
# GitHub macos-latest agents are currently all Intel
|
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
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
2021-02-10 22:35:04 +01:00
|
|
|
- name: ccache
|
|
|
|
uses: hendrikmuhs/ccache-action@v1
|
|
|
|
with:
|
2021-09-13 01:33:34 +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
|
2021-01-03 05:15:40 +01:00
|
|
|
- name: Build OpenRCT2
|
2021-01-10 08:49:04 +01:00
|
|
|
run: |
|
2021-04-15 12:45:05 +02:00
|
|
|
HOMEBREW_NO_ANALYTICS=1 brew install ninja
|
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-03 05:15:40 +01:00
|
|
|
- name: Run Tests
|
2021-09-13 01:33:34 +02:00
|
|
|
if: ${{matrix.run_tests}}
|
2021-01-03 05:15:40 +01:00
|
|
|
run: . scripts/setenv -q && run-tests
|
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)
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
|
|
|
macos-universal:
|
|
|
|
name: macOS universal app bundle
|
|
|
|
runs-on: macos-latest
|
|
|
|
needs: macos-cmake
|
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
2021-09-13 01:33:34 +02:00
|
|
|
- name: download x64 app bundle
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/download-artifact@v3
|
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
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/download-artifact@v3
|
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)
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
2022-03-09 21:53:23 +01:00
|
|
|
upload-build artifacts/openrct2-macos.zip macos $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:
|
2022-01-06 00:09:24 +01:00
|
|
|
name: Linux (${{ matrix.platform }}, ${{ matrix.distro }}, 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:
|
|
|
|
- platform: x86_64
|
2022-01-06 00:09:24 +01:00
|
|
|
distro: bionic
|
2022-01-07 23:04:52 +01:00
|
|
|
image: openrct2/openrct2-build:4-bionic
|
2022-05-19 20:43:28 +02:00
|
|
|
build_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=on -DCMAKE_CXX_FLAGS="-g -gz" -DWITH_TESTS=off -DDISABLE_FLAC=ON -DDISABLE_VORBIS=ON
|
2022-01-06 00:09:24 +01:00
|
|
|
- platform: x86_64
|
|
|
|
distro: focal
|
2022-04-01 07:42:50 +02:00
|
|
|
image: openrct2/openrct2-build:8-focal
|
|
|
|
build_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=on -DCMAKE_CXX_FLAGS="-g -gz"
|
|
|
|
- platform: x86_64
|
|
|
|
distro: jammy
|
|
|
|
image: openrct2/openrct2-build:8-jammy
|
2022-01-06 00:09:24 +01:00
|
|
|
build_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=on -DCMAKE_CXX_FLAGS="-g -gz"
|
|
|
|
- platform: x86_64
|
|
|
|
distro: bullseye
|
2022-04-01 07:42:50 +02:00
|
|
|
image: openrct2/openrct2-build:8-bullseye
|
2022-01-06 00:09:24 +01:00
|
|
|
build_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=on -DCMAKE_CXX_FLAGS="-g -gz"
|
2021-04-15 12:43:39 +02:00
|
|
|
- platform: i686
|
2022-05-22 23:42:17 +02:00
|
|
|
distro: focal
|
|
|
|
image: openrct2/openrct2-build:8-focal32
|
2022-05-09 23:25:30 +02:00
|
|
|
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
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
2021-02-09 12:58:23 +01:00
|
|
|
- name: ccache
|
|
|
|
uses: hendrikmuhs/ccache-action@v1
|
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)
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
|
|
|
- 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
|
2022-03-09 21:53:23 +01:00
|
|
|
upload-build artifacts/OpenRCT2-${{ runner.os }}-${{ matrix.distro }}-${{ matrix.platform }}.tar.gz linux-${{ matrix.platform }} $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:
|
|
|
|
name: Linux (x64, AppImage)
|
|
|
|
runs-on: ubuntu-latest
|
2021-04-15 12:00:59 +02:00
|
|
|
needs: check-code-formatting
|
2022-05-21 00:17:39 +02:00
|
|
|
container: openrct2/openrct2-build:8-focal
|
2020-01-24 12:46:12 +01:00
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
2021-02-09 12:58:23 +01:00
|
|
|
- name: ccache
|
|
|
|
uses: hendrikmuhs/ccache-action@v1
|
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)
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
2020-09-04 06:09:14 +02:00
|
|
|
linux-flathub-beta:
|
|
|
|
name: Linux (Flathub beta channel)
|
|
|
|
if: github.repository == 'OpenRCT2/OpenRCT2' && github.ref == 'refs/heads/develop' && github.event_name == 'push'
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
|
|
- name: Send dispatch event to OpenRCT2 Flathub repository
|
|
|
|
uses: peter-evans/repository-dispatch@v1
|
|
|
|
with:
|
|
|
|
token: ${{ secrets.OPENRCT2_FLATHUB_TOKEN }}
|
|
|
|
repository: flathub/io.openrct2.OpenRCT2
|
|
|
|
event-type: openrct2_develop_push
|
|
|
|
client-payload: '{ "commit": "${{ github.sha }}" }'
|
2020-01-27 15:50:39 +01:00
|
|
|
linux-docker:
|
|
|
|
name: 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
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
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:
|
2022-05-15 18:16:36 +02:00
|
|
|
name: Linux (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
|
2022-05-21 00:17:39 +02:00
|
|
|
container: openrct2/openrct2-build:8-jammy
|
2020-01-24 12:46:12 +01:00
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
2021-02-09 12:58:23 +01:00
|
|
|
- name: ccache
|
|
|
|
uses: hendrikmuhs/ccache-action@v1
|
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
|
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
|
2022-05-21 00:17:39 +02:00
|
|
|
container: openrct2/openrct2-build:8-android
|
2020-01-31 09:02:11 +01:00
|
|
|
steps:
|
|
|
|
- name: Checkout
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/checkout@v3
|
2021-02-09 13:27:09 +01:00
|
|
|
- name: ccache
|
|
|
|
uses: hendrikmuhs/ccache-action@v1
|
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)
|
2022-03-09 21:15:18 +01:00
|
|
|
uses: actions/upload-artifact@v3
|
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
|
2022-03-09 21:53:23 +01:00
|
|
|
upload-build artifacts/openrct2-arm.apk android-arm $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
|