diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d5294662..e77bede1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ stages: - coverage - builddocs - deploy + - publish test: tags: @@ -48,4 +49,52 @@ pages: paths: - public only: - - main \ No newline at end of file + - main + +dry-run: + stage: publish + image: google/dart + script: + - dart pub get + - dart pub publish --dry-run + only: + - merge_requests + +pub-dev: + stage: publish + image: google/dart + script: + - | + if [ -z "${PUB_DEV_PUBLISH_ACCESS_TOKEN}" ]; then + echo "Missing PUB_DEV_PUBLISH_ACCESS_TOKEN environment variable" + exit 1 + fi + + if [ -z "${PUB_DEV_PUBLISH_REFRESH_TOKEN}" ]; then + echo "Missing PUB_DEV_PUBLISH_REFRESH_TOKEN environment variable" + exit 1 + fi + + if [ -z "${PUB_DEV_PUBLISH_TOKEN_ENDPOINT}" ]; then + echo "Missing PUB_DEV_PUBLISH_TOKEN_ENDPOINT environment variable" + exit 1 + fi + + if [ -z "${PUB_DEV_PUBLISH_EXPIRATION}" ]; then + echo "Missing PUB_DEV_PUBLISH_EXPIRATION environment variable" + exit 1 + fi + + cat < ~/.pub-cache/credentials.json + { + "accessToken":"$(echo "${PUB_DEV_PUBLISH_ACCESS_TOKEN}" | base64 -d)", + "refreshToken":"$(echo "${PUB_DEV_PUBLISH_REFRESH_TOKEN}" | base64 -d)", + "tokenEndpoint":"${PUB_DEV_PUBLISH_TOKEN_ENDPOINT}", + "scopes":["https://www.googleapis.com/auth/userinfo.email","openid"], + "expiration":${PUB_DEV_PUBLISH_EXPIRATION} + } + EOF + - dart pub get + - dart pub publish --dry-run + only: + - tags