stages: - coverage - builddocs - deploy - publish test: tags: - linux stage: coverage image: dart script: - dart pub get - dart pub run test code_analyze: tags: - docker stage: coverage image: cirrusci/flutter dependencies: [] script: - flutter format lib/ test/ --set-exit-if-changed - flutter analyze build_api_doc: tags: - docker stage: builddocs image: cirrusci/flutter script: - dartdoc --exclude "dart:async,dart:collection,dart:convert,dart:core,dart:developer,dart:io,dart:isolate,dart:math,dart:typed_data,dart:ui" artifacts: paths: - doc/api/ only: - main pages: tags: - linux stage: deploy image: alpine:latest script: - mv doc/api/ public dependencies: - build_api_doc artifacts: paths: - public only: - main dry-run: stage: publish image: dart script: - rm -rf ./docs - dart pub get - dart pub publish --dry-run pub-dev: stage: publish image: 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