dart-raylib

Форк
0
/
.gitlab-ci.yml 
153 строки · 3.8 Кб
1
image: google/dart:latest
2

3
stages:
4
  - lint
5
  - test
6
  - publish
7

8
dartdoc:
9
  stage: lint
10
  script:
11
    - pub get
12
    - dartdoc --no-auto-include-dependencies --quiet
13
  only:
14
    refs:
15
      - merge_requests
16
    changes:
17
      - lib/**/*
18
      - README.md
19
      - .gitlab-ci.yml
20

21
dart_format:
22
  stage: lint
23
  script:
24
    - |
25
      [ -z "$(dart format . | grep "(0 changed)")" ] && exit 1 || exit 0
26
  only:
27
    refs:
28
      - merge_requests
29
    changes:
30
      - example/**/*.dart
31
      - lib/**/*.dart
32
      - test/**/*.dart
33
      - .gitlab-ci.yml
34

35
dart_analyze:
36
  stage: lint
37
  script:
38
    - pub get
39
    - dart analyze
40
  only:
41
    refs:
42
      - merge_requests
43
    changes:
44
      - example/**/*.dart
45
      - lib/**/*.dart
46
      - test/**/*.dart
47
      - .gitlab-ci.yml
48

49
# unit_test:
50
#   stage: test
51
#   script:
52
#     - apt-get update && apt-get install lcov -y
53
#     - pub get
54
#     - dart run test --coverage coverage/
55
#     - dart run coverage:format_coverage -i coverage/test/ --lcov --out coverage/lcov.info --packages .packages --report-on $(pwd)/lib
56
#     - lcov --list ./coverage/lcov.info
57
#   only:
58
#     refs:
59
#       - merge_requests
60
#       - main
61
#     changes:
62
#       - lib/**/*
63
#       - test/**/*
64
#       - .gitlab-ci.yml
65

66
dry_run_publish:
67
  stage: publish
68
  script:
69
    - |
70
      version=$(grep -A3 'version:' ./pubspec.yaml | head -n1 | cut -c 9-)
71
      if ! grep -q $version "./CHANGELOG.md"; then
72
          echo "Missing CHANGELOG entry for version $version"
73
          exit 1
74
      fi
75
    - pub get
76
    # Removing submodules as the pub publish otherwise fails.
77
    - git submodule deinit vendor/raylib
78
    - git rm vendor/raylib
79
    - rm -rf .git/modules/vendor/raylib
80
    - pub publish --dry-run
81
  only:
82
    refs:
83
      - merge_requests
84
      
85
tag:
86
  image: curlimages/curl
87
  stage: publish
88
  script:
89
    - |
90
      if [ -z "${GITLAB_API_TOKEN}" ]; then
91
        echo "Missing GITLAB_API_TOKEN environment variable"
92
        exit 1
93
      fi
94

95
      export TAG_NAME="$(awk '/^version: /{print $NF}' pubspec.yaml)"
96
      curl --fail --request POST --header "PRIVATE-TOKEN: ${GITLAB_API_TOKEN}" \
97
        --data-urlencode "tag_name=v${TAG_NAME}" \
98
        --data-urlencode "ref=main" \
99
        --data-urlencode "release_description=Check the [CHANGELOG.md](${CI_PROJECT_URL}/-/blob/main/CHANGELOG.md)" \
100
        "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/repository/tags"
101
  environment:
102
    name: pub-dev-plugin
103
    url: https://pub.dev/packages/raylib
104
  when: manual
105
  only:
106
    refs:
107
      - main
108

109
pub_dev_publish:
110
  stage: publish
111
  script:
112
    - |
113
      if [ -z "${PUB_DEV_PUBLISH_ACCESS_TOKEN}" ]; then
114
        echo "Missing PUB_DEV_PUBLISH_ACCESS_TOKEN environment variable"
115
        exit 1
116
      fi
117

118
      if [ -z "${PUB_DEV_PUBLISH_REFRESH_TOKEN}" ]; then
119
        echo "Missing PUB_DEV_PUBLISH_REFRESH_TOKEN environment variable"
120
        exit 1
121
      fi
122

123
      if [ -z "${PUB_DEV_PUBLISH_TOKEN_ENDPOINT}" ]; then
124
        echo "Missing PUB_DEV_PUBLISH_TOKEN_ENDPOINT environment variable"
125
        exit 1
126
      fi
127

128
      if [ -z "${PUB_DEV_PUBLISH_EXPIRATION}" ]; then
129
        echo "Missing PUB_DEV_PUBLISH_EXPIRATION environment variable"
130
        exit 1
131
      fi
132
    - pub get
133
    - |
134
      cat <<EOF > ~/.pub-cache/credentials.json
135
      {
136
        "accessToken":"$(echo "${PUB_DEV_PUBLISH_ACCESS_TOKEN}" | base64 -d)",
137
        "refreshToken":"$(echo "${PUB_DEV_PUBLISH_REFRESH_TOKEN}" | base64 -d)",
138
        "tokenEndpoint":"${PUB_DEV_PUBLISH_TOKEN_ENDPOINT}",
139
        "scopes":["https://www.googleapis.com/auth/userinfo.email","openid"],
140
        "expiration":${PUB_DEV_PUBLISH_EXPIRATION}
141
      }
142
      EOF
143
    # Removing submodules as the pub publish otherwise fails.
144
    - git submodule deinit vendor/raylib
145
    - git rm vendor/raylib
146
    - rm -rf .git/modules/vendor/raylib
147
    - pub publish -f
148
  only:
149
    refs:
150
      - /^v.*$/
151
  except:
152
    refs:
153
      - branches
154

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.