open-fpsz/.gitlab-ci.yml
2024-04-22 11:54:15 -04:00

61 lines
2 KiB
YAML

image: $CI_REGISTRY/open-fpsz/docker-godot/godot
variables:
EXPORT_NAME: open-fpsz
stages:
- addons
- export
# cache imported assets between runs
cache: &global_cache
key: $CI_MERGE_REQUEST_IID
paths:
- .godot
# run godot to load addons
addons:
stage: addons
script:
- timeout 15 godot --headless --editor --verbose || true
- timeout 15 godot --headless --editor --verbose || true
rules:
- if: '$CI_COMMIT_TAG =~ /^v\d\.\d\.\d$/'
# export binaries
.export_presets:
before_script:
- cp "$EXPORT_PRESETS" export_presets.cfg
- export ZIP_ARCHIVE_NAME="$EXPORT_NAME-$CI_COMMIT_TAG-$CI_JOB_NAME.zip"
rules:
- if: '$CI_COMMIT_TAG =~ /^v\d\.\d\.\d$/'
linux:
stage: export
extends: [ .export_presets ]
when: manual
script:
- mkdir -vp build/$CI_JOB_NAME
- godot --headless --verbose --export-release "Linux/X11" build/$CI_JOB_NAME/$EXPORT_NAME.x86_64
- cd build && zip -r $ZIP_ARCHIVE_NAME $CI_JOB_NAME/*
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $ZIP_ARCHIVE_NAME "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/$EXPORT_NAME/${CI_COMMIT_TAG:1}/$ZIP_ARCHIVE_NAME"'
windows:
stage: export
extends: [ .export_presets ]
when: manual
script:
- mkdir -vp build/$CI_JOB_NAME
- godot --headless --verbose --export-release "Windows Desktop" build/$CI_JOB_NAME/$EXPORT_NAME.exe
- cd build && zip -r $ZIP_ARCHIVE_NAME $CI_JOB_NAME/*
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $ZIP_ARCHIVE_NAME "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/$EXPORT_NAME/${CI_COMMIT_TAG:1}/$ZIP_ARCHIVE_NAME"'
mac:
stage: export
extends: [ .export_presets ]
when: manual
script:
- mkdir -vp build/$CI_JOB_NAME
- godot --headless --verbose --export-release "macOS" build/$CI_JOB_NAME/$ZIP_ARCHIVE_NAME
- 'cd build/$CI_JOB_NAME && curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file $ZIP_ARCHIVE_NAME "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/$EXPORT_NAME/${CI_COMMIT_TAG:1}/$ZIP_ARCHIVE_NAME"'