diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 143ac8a16435acfb7df83fb872199ee152dcfdeb..d9e9a936393c04e1ab1377947dd7f507651b9514 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,16 +1,17 @@ image: ghcr.io/cirruslabs/flutter:latest stages: - - build-debug - - release + - publish-check + - release-tag + - release-publish -android:build-debug: - stage: build-debug +# Check flutter package +package:publish-check: + stage: publish-check except: - tags - master script: - # Check flutter package - VERSION_NAME="$(grep '^version:' pubspec.yaml | cut -d' ' -f2)" - echo "${VERSION_NAME}" - TAG_NAME="${VERSION_NAME}" @@ -24,15 +25,20 @@ android:build-debug: - flutter pub publish --dry-run interruptible: true -application:release: - stage: release +# Create git tag on new release +package:release-tag: + stage: release-tag + image: + name: alpine/git + entrypoint: [""] only: - master except: - tags dependencies: - - android:build-debug + - package:publish-check script: + - apk --no-cache add curl - 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} @@ -46,9 +52,24 @@ application:release: 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 + +# Publish package to private repository +package:release-publish: + stage: release-publish + only: + - master + except: + - tags + dependencies: + - package:release-tag + script: + - echo "${PRIVATE_PACKAGES_REPOSITORY_KEY}" | flutter pub token add https://pub.harrault.fr + - VERSION_NAME="$(grep '^version:' pubspec.yaml | cut -d' ' -f2)" + - echo "${VERSION_NAME}" + - flutter clean + - flutter packages get + - flutter pub publish --force + - > + curl --silent -d "{\"token\": \"${JABBER_NOTIFICATION_TOKEN}\", \"message\": \"New package published for ${CI_PROJECT_PATH}: ${VERSION_NAME}\"}" -H "Content-Type: application/json" -X POST ${JABBER_NOTIFICATION_URL} diff --git a/CHANGELOG.md b/CHANGELOG.md index 077a2e665cd50ce820a4e39660d97012d4c6a9a1..bcf9e12ef6d50a65f4f602fffda9d51c72c7fcba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.3 + +- Split tag and publish CI/CD steps, minor CI/CD improvements + ## 1.0.2 - Fix publish to private repository diff --git a/pubspec.yaml b/pubspec.yaml index 69609324b2da2783f12a4ba5729d4f8229907a0e..1108353478ae1f668780c19ea18057f290d0dea4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: "Flutter custom toolbox for org.benoitharrault.* projects." publish_to: https://pub.harrault.fr/ -version: 1.0.2 +version: 1.0.3 homepage: https://git.harrault.fr/android/flutter-toolbox