178 lines
6.3 KiB
YAML
178 lines
6.3 KiB
YAML
stages:
|
|
- test
|
|
- generate_tag_or_version
|
|
- build-artifacts
|
|
- release-artifacts
|
|
- notification
|
|
|
|
variables:
|
|
LC_ALL: "en_US.UTF-8"
|
|
LANG: "en_US.UTF-8"
|
|
|
|
|
|
.build_rule:
|
|
tags:
|
|
- macos
|
|
- flutter
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "develop"
|
|
- if: $CI_COMMIT_BRANCH == "release"
|
|
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
|
- if: $CI_COMMIT_BRANCH == "canary_release"
|
|
- if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z]+\.[0-9]+)?$/
|
|
|
|
.generate_tag_rule:
|
|
tags:
|
|
- macos
|
|
- flutter
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "master"
|
|
|
|
.generate_next_version_rule:
|
|
tags:
|
|
- macos
|
|
- flutter
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "develop"
|
|
- if: $CI_COMMIT_BRANCH == "release"
|
|
- if: $CI_COMMIT_BRANCH == "canary_release"
|
|
- if: $CI_COMMIT_BRANCH =~ /feat_[a-zA-Z]+/
|
|
|
|
.print_env:
|
|
stage: test
|
|
extends: .build_rule
|
|
before_script:
|
|
- java --version
|
|
- printenv | while IFS='=' read -r key value; do echo "$key=$value"; done
|
|
after_script:
|
|
- echo "finished"
|
|
|
|
.setup_fastlane_android:
|
|
extends: .build_rule
|
|
before_script:
|
|
- ls -li
|
|
- export NEXT_VERSION="$(cat app_new.version)"
|
|
- flutter pub get
|
|
- bundle install --gemfile android/Gemfile --quiet
|
|
cache:
|
|
paths:
|
|
- app_new.version
|
|
|
|
.setup_fastlane_ios:
|
|
extends: .build_rule
|
|
before_script:
|
|
- ls -li
|
|
- export NEXT_VERSION="$(cat app_new.version)"
|
|
- flutter pub get
|
|
- bundle install --gemfile ios/Gemfile --quiet
|
|
cache:
|
|
paths:
|
|
- app_new.version
|
|
|
|
test_lint_check:
|
|
stage: test
|
|
extends: .print_env
|
|
script:
|
|
- echo "run lint check or per-test here"
|
|
tags:
|
|
- macos
|
|
- flutter
|
|
|
|
generate_git_tag:
|
|
stage: generate_tag_or_version
|
|
extends: .generate_tag_rule
|
|
before_script:
|
|
- bash pre_build.sh xhj
|
|
- bash pre_build.sh sky
|
|
- project_url=$(echo $CI_PROJECT_URL | sed 's/http:\/\///')
|
|
- echo "project_url:$project_url"
|
|
- git remote set-url origin http://gitlab-ci-token:${GITLAB_ACCESS_TOKEN}@$project_url.git
|
|
script:
|
|
- bash tag_generator.sh generate_tag
|
|
|
|
generate_next_version:
|
|
stage: generate_tag_or_version
|
|
extends: .generate_next_version_rule
|
|
script:
|
|
- bash tag_generator.sh generate_version
|
|
cache:
|
|
paths:
|
|
- app_new.version
|
|
|
|
build_android:
|
|
stage: build-artifacts
|
|
extends: .setup_fastlane_android
|
|
script: bash android/build.sh
|
|
artifacts:
|
|
paths:
|
|
- build/app/outputs/flutter-apk/
|
|
|
|
build_ios:
|
|
stage: build-artifacts
|
|
extends: .setup_fastlane_ios
|
|
script:
|
|
- bash ios/build.sh
|
|
artifacts:
|
|
paths:
|
|
- build/app/outputs/flutter-ipa
|
|
|
|
create-release:
|
|
stage: release-artifacts
|
|
extends: .build_rule
|
|
dependencies:
|
|
- build_android
|
|
- build_ios
|
|
needs:
|
|
- job: build_android
|
|
artifacts: true
|
|
- job: build_ios
|
|
artifacts: true
|
|
rules:
|
|
- if: $CI_COMMIT_TAG
|
|
before_script:
|
|
- echo "start create release"
|
|
- bash release_description_generator.sh
|
|
- export RELEASE_DESCRIPTION="$(cat changelog.md)"
|
|
- echo "${RELEASE_DESCRIPTION}"
|
|
script:
|
|
- export StarLock_VERSION=${CI_COMMIT_TAG#*-}
|
|
- echo "Uploading StarLock-${StarLock_VERSION} packages to
|
|
${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/StarLock-${StarLock_VERSION}-*"
|
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-xhj-release-${CI_COMMIT_TAG}.apk
|
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.apk"'
|
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-xhj-release-${CI_COMMIT_TAG}.aab
|
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.aab"'
|
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.apk
|
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.apk"'
|
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-apk/starlock-sky-release-${CI_COMMIT_TAG}.aab
|
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.aab"'
|
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-xhj-release-${CI_COMMIT_TAG}.ipa
|
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-xhj-release-${CI_COMMIT_TAG}.ipa"'
|
|
- 'curl -i --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file build/app/outputs/flutter-ipa/starlock-sky-release-${CI_COMMIT_TAG}.ipa
|
|
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${StarLock_VERSION}/starlock-sky-release-${CI_COMMIT_TAG}.ipa"'
|
|
release:
|
|
name: '$CI_COMMIT_TAG'
|
|
description: '$(cat changelog.md)'
|
|
tag_name: '$CI_COMMIT_TAG'
|
|
ref: '$CI_COMMIT_TAG'
|
|
assets:
|
|
links:
|
|
- name: 'xhj apk binary package'
|
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.apk'
|
|
link_type: 'package'
|
|
- name: 'xhj bundle binary package'
|
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.aab'
|
|
link_type: 'package'
|
|
- name: 'sky apk binary package'
|
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.apk'
|
|
link_type: 'package'
|
|
- name: 'sky bundle binary package'
|
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.aab'
|
|
link_type: 'package'
|
|
- name: 'xhj ipa binary package'
|
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-xhj-release-${CI_COMMIT_TAG}.ipa'
|
|
link_type: 'package'
|
|
- name: 'sky ipa binary package'
|
|
url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/StarLock/${CI_COMMIT_TAG}/starlock-sky-release-${CI_COMMIT_TAG}.ipa'
|
|
link_type: 'package'
|