image: ghcr.io/cirruslabs/flutter:latest stages: - build-debug - release android:build-debug: stage: build-debug except: - tags - master script: # Check flutter package - VERSION_NAME="$(grep '^version:' pubspec.yaml | cut -d' ' -f2)" - echo "${VERSION_NAME}" - TAG_NAME="${VERSION_NAME}" - echo "${TAG_NAME}" - > if [ $(git tag -l "${TAG_NAME}") ]; then echo "Tag ${TAG_NAME} already exists." fi - flutter clean - flutter packages get - flutter pub publish --dry-run interruptible: true application:release: stage: release only: - master except: - tags dependencies: - android:build-debug script: - git config user.email "${GITLAB_USER_EMAIL}" - git config user.name "${GITLAB_USER_NAME}" - git remote set-url origin https://oauth2:${GITLAB_ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH} - VERSION_NAME="$(grep '^version:' pubspec.yaml | cut -d' ' -f2)" - echo "${VERSION_NAME}" - TAG_NAME="${VERSION_NAME}" - echo "${TAG_NAME}" - > if [ $(git tag -l "${TAG_NAME}") ]; then echo "Tag ${TAG_NAME} already exists." else git tag -a "${TAG_NAME}" -m "Release ${VERSION_NAME}" git push origin "${TAG_NAME}" flutter clean flutter packages get echo "${PRIVATE_PACKAGES_REPOSITORY_KEY}" | flutter pub token add https://pub.harrault.fr flutter pub publish --force curl --silent -d "{\"token\": \"${JABBER_NOTIFICATION_TOKEN}\", \"message\": \"New tag for ${CI_PROJECT_PATH}: ${TAG_NAME}\"}" -H "Content-Type: application/json" -X POST ${JABBER_NOTIFICATION_URL} fi