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"'