Skip to content
Snippets Groups Projects

Resolve "Split tag and publish CI/CD steps"

Merged Benoît Harrault requested to merge 27-split-tag-and-publish-ci-cd-steps into master
3 files
+ 38
13
Compare changes
  • Side-by-side
  • Inline
Files
3
+ 33
12
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}
Loading