matrix-dart-sdk/.gitlab-ci.yml

101 lines
2.1 KiB
YAML

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 <<EOF > ~/.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