image: barichello/godot-ci:4.1.2 # Cache imported assets between runs cache: key: import-assets paths: - .godot/imported/ stages: - import-assets - export - deploy variables: EXPORT_NAME: Frontier-of-Hell # Open the editor to import assets in case the cache was empty or outdated import-assets: stage: import-assets script: - godot -v -e --quit --headless linux: stage: export script: - mkdir -v -p build/linux - godot -v --export-release --headless "Linux/X11" ../build/linux/$EXPORT_NAME.x86_64 artifacts: name: $EXPORT_NAME-$CI_JOB_NAME paths: - build/linux windows: stage: export script: - mkdir -v -p build/windows - godot -v --export-release --headless "Windows Desktop" ../build/windows/$EXPORT_NAME.exe artifacts: name: $EXPORT_NAME-$CI_JOB_NAME paths: - build/windows mac: stage: export script: - mkdir -v -p build/mac - godot -v --export-release --headless "Mac OSX" ../build/mac/$EXPORT_NAME.zip artifacts: name: $EXPORT_NAME-$CI_JOB_NAME paths: - build/mac web: stage: export script: - mkdir -v -p build/web - godot -v --export-release --headless "HTML5" ../build/web/index.html artifacts: name: $EXPORT_NAME-$CI_JOB_NAME paths: - build/web android: stage: export rules: - if: $SECRET_RELEASE_KEYSTORE_BASE64 - if: $SECRET_RELEASE_KEYSTORE_USER - if: $SECRET_RELEASE_KEYSTORE_PASSWORD script: - echo $SECRET_RELEASE_KEYSTORE_BASE64 | base64 --decode > /root/upload-keystore.jks - mkdir -v -p build/android - sed 's@keystore/release=".*"@keystore/release="'/root/upload-keystore.jks'"@g' -i export_presets.cfg - sed 's@keystore/release_user=".*"@keystore/release_user="'$SECRET_RELEASE_KEYSTORE_USER'"@g' -i export_presets.cfg - sed 's@keystore/release_password=".*"@keystore/release_password="'$SECRET_RELEASE_KEYSTORE_PASSWORD'"@g' -i export_presets.cfg - godot -v --export-release --headless "Android" ../build/android/$EXPORT_NAME.apk artifacts: name: $EXPORT_NAME-$CI_JOB_NAME paths: - build/android # GitLab Pages Deploy pages: stage: deploy dependencies: - web script: # This ensures the `pages` branch is available. - git fetch - git checkout pages - rm -f *.md - mv build/web/** ./public artifacts: paths: - public # Itch.io Deploy itchio:linux: stage: deploy script: - butler push ./build/linux $ITCHIO_USERNAME/$ITCHIO_GAME:linux dependencies: - linux itchio:windows: stage: deploy script: - butler push ./build/windows $ITCHIO_USERNAME/$ITCHIO_GAME:windows dependencies: - windows itchio:macosx: stage: deploy script: - butler push ./build/mac $ITCHIO_USERNAME/$ITCHIO_GAME:mac dependencies: - mac