diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b5d55d2f..8a1d3fb5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ stages: - coverage - builddocs - deploy + - publish workflow: rules: @@ -111,3 +112,52 @@ pages: - public rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + +dry-run: + stage: publish + image: google/dart + allow_failure: true + script: + - rm -rf ./docs + - dart pub get + - dart pub publish --dry-run + +pub-dev: + stage: publish + image: google/dart + script: + - rm -rf ./docs + - | + 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 --force + rules: + - if: $CI_COMMIT_TAG