.craft_macos_base: stage: deploy when: manual tags: - macOS variables: GIT_STRATEGY: none # KDECI_CRAFT_PLATFORM is specified in the derived jobs KDECI_CRAFT_CACHE: /mnt/craft-cache/$KDECI_CRAFT_PLATFORM/ KDECI_CRAFT_CONFIG: ci-utilities/resources/CraftConfig.ini KDECI_CRAFT_PROJECT_CONFIG: $CI_PROJECT_DIR/src/.craft.ini interruptible: true before_script: # ensure we start with an empty folder - rm -rf .kde-ci-packages * - export LANG=en_US.UTF-8 - git clone $CI_REPOSITORY_URL --branch=$CI_COMMIT_REF_NAME src/ # Create empty .craft.ini if none exists - touch $KDECI_CRAFT_PROJECT_CONFIG - git clone https://invent.kde.org/packaging/craftmaster --branch=master - git clone https://invent.kde.org/sysadmin/ci-utilities # Define a short cut for the lengthy CraftMaster command line - function craftmaster { python3 craftmaster/CraftMaster.py --config $KDECI_CRAFT_CONFIG --config-override $KDECI_CRAFT_PROJECT_CONFIG --target $KDECI_CRAFT_PLATFORM $@; } script: # Set up craft settings and blueprint settings - craftmaster --setup # Get Craft itself ready - craftmaster -c -i --options virtual.ignored=True --update craft # Install all of our dependencies - craftmaster -c --install-deps $CI_PROJECT_NAME # Build the actual application - craftmaster -c --no-cache --target master --src-dir $CI_PROJECT_DIR/src/ $CI_PROJECT_NAME # Package it up! - craftmaster -c --package --target master --src-dir $CI_PROJECT_DIR/src/ $CI_PROJECT_NAME # Save our package - packageDir=$(craftmaster -c -q --get "packageDestinationDir()" virtual/base) - mkdir $CI_PROJECT_DIR/.kde-ci-packages/ - cp -vf $packageDir/*.dmg $CI_PROJECT_DIR/.kde-ci-packages/ after_script: # cleanup, we can't just delete everything since that would also delete the artifacts which are gathered after - rm -rf src craftmaster ci-utilities blueprints downloads craft-clone $KDECI_CRAFT_PLATFORM