cge-docker-unstable-changed #165
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
# ---------------------------------------------------------------------------- | |
# GitHub Actions workflow to build this application. | |
# Using latest Castle Game Engine ( https://castle-engine.io/ ) snapshot. | |
# For multiple platforms (Linux, Windows, macOS, Android). | |
# | |
# This uses GitHub-hosted runners, that is: you don't need to set up any server | |
# infrastructure, GitHub provides it all for free for open-source projects. | |
# | |
# See docs: | |
# - https://castle-engine.io/github_actions | |
# - https://docs.github.com/en/actions | |
# ---------------------------------------------------------------------------- | |
name: Build | |
on: | |
push: | |
pull_request: | |
repository_dispatch: | |
types: [cge-docker-unstable-changed] | |
jobs: | |
# Build for platforms supported by | |
# CGE Docker image https://hub.docker.com/r/kambi/castle-engine-cloud-builds-tools/ . | |
# | |
# Since setting up Docker image takes majority of time (5-6 mins) | |
# compared to actually getting and compiling CGE (1 min) | |
# and building application (~1 min for each platform), | |
# we build all platforms possible within one job. | |
build-using-docker: | |
name: Build Using Docker | |
runs-on: ubuntu-latest | |
container: kambi/castle-engine-cloud-builds-tools:cge-none | |
steps: | |
- uses: actions/checkout@v4 | |
# Setup Castle Game Engine snapshot | |
- name: Castle Game Engine - Env CASTLE_ENGINE_PATH | |
run: echo "CASTLE_ENGINE_PATH=$GITHUB_WORKSPACE/castle-engine" >> $GITHUB_ENV | |
- name: Castle Game Engine - Env PATH (non-Windows) | |
run: echo "PATH=$PATH:$CASTLE_ENGINE_PATH/tools/build-tool/" >> $GITHUB_ENV | |
- name: Castle Game Engine - Clone snapshot | |
run: git clone --depth 1 --single-branch --branch snapshot https://github.com/castle-engine/castle-engine/ | |
- name: Castle Game Engine - Build | |
run: cd $CASTLE_ENGINE_PATH/tools/build-tool/ && ./castle-engine_compile.sh | |
# For now we setup non-functional config in GH Actions, only to test compilation. | |
- name: Setup dummy config | |
run: cp -f code/openai_config.inc.template code/openai_config.inc | |
- name: Package Windows | |
run: castle-engine package --os=win64 --cpu=x86_64 --verbose | |
- name: Package Linux | |
run: castle-engine package --os=linux --cpu=x86_64 --verbose | |
- name: Package Android | |
run: castle-engine package --target=android --verbose | |
- name: Archive Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-linux-android-build | |
path: | | |
*.zip | |
*.tar.gz | |
*.apk | |
if-no-files-found: error | |
# Build for platforms supported from macOS. | |
# This means to build for macOS and (maybe in the future) iOS. | |
build-macos: | |
name: Build Using macOS | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install FPC+Lazarus | |
uses: gcarreno/setup-lazarus@v3.3.1 | |
with: | |
lazarus-version: stable | |
# Setup Castle Game Engine snapshot | |
- name: Castle Game Engine - Env CASTLE_ENGINE_PATH | |
run: echo "CASTLE_ENGINE_PATH=$GITHUB_WORKSPACE/castle-engine" >> $GITHUB_ENV | |
- name: Castle Game Engine - Env PATH (non-Windows) | |
run: echo "PATH=$PATH:$CASTLE_ENGINE_PATH/tools/build-tool/" >> $GITHUB_ENV | |
- name: Castle Game Engine - Clone snapshot | |
run: git clone --depth 1 --single-branch --branch snapshot https://github.com/castle-engine/castle-engine/ | |
- name: Castle Game Engine - Build | |
run: cd $CASTLE_ENGINE_PATH/tools/build-tool/ && ./castle-engine_compile.sh | |
# For now we setup non-functional config in GH Actions, only to test compilation. | |
- name: Setup dummy config | |
run: cp -f code/openai_config.inc.template code/openai_config.inc | |
- name: Package macOS | |
run: castle-engine package --os=darwin --cpu=x86_64 --verbose | |
- name: Archive Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos-build | |
path: "*-darwin-x86_64.zip" | |
if-no-files-found: error | |