155 lines
2.8 KiB
YAML
155 lines
2.8 KiB
YAML
image: ${CI_REGISTRY}/protonvpn/android/android-app-new:branch-compose
|
|
|
|
include:
|
|
- project: 'agarroux/publish-github'
|
|
ref: master
|
|
file: '/jobs/release.gitlab-ci.yml'
|
|
|
|
- project: 'translations/generator'
|
|
ref: master
|
|
file: '/jobs/sync-crowdin.gitlab-ci.yml'
|
|
|
|
- project: 'translations/generator'
|
|
ref: master
|
|
file: '/jobs/commit-locales.gitlab-ci.yml'
|
|
|
|
stages:
|
|
- bot
|
|
- analyze
|
|
- build
|
|
- test
|
|
- publish
|
|
- commit
|
|
- slackRelease
|
|
|
|
cache:
|
|
key: ${CI_COMMIT_REF_SLUG}
|
|
paths:
|
|
- .gradle
|
|
- '**/build'
|
|
- '**/**/build'
|
|
- '**/**/**/build'
|
|
|
|
|
|
#####################
|
|
detekt analysis:
|
|
stage: analyze
|
|
when: always
|
|
tags:
|
|
- medium
|
|
script:
|
|
- ./gradlew multiModuleDetekt
|
|
artifacts:
|
|
expire_in: 1 month
|
|
reports:
|
|
codequality: config/detekt/reports/mergedReport.json
|
|
|
|
assemble:
|
|
stage: build
|
|
tags:
|
|
- large
|
|
script:
|
|
- ./gradlew assemble
|
|
# artifacts:
|
|
# paths:
|
|
# - app/build/outputs/
|
|
|
|
debugTests:
|
|
cache:
|
|
policy: pull
|
|
stage: test
|
|
tags:
|
|
- large
|
|
script:
|
|
- ./gradlew -Pci --console=plain allTest
|
|
|
|
uiTests:
|
|
stage: test
|
|
when: manual
|
|
trigger:
|
|
strategy: depend
|
|
include:
|
|
- local: coreexample/ci/test.coreexample.uitests.yml
|
|
|
|
release-publish-github:
|
|
stage: publish
|
|
tags:
|
|
- small
|
|
only:
|
|
- master
|
|
variables:
|
|
RELEASE_SYNC_PUBLIC_URL: git@github.com:ProtonMail/protoncore_android.git
|
|
RELEASE_SYNC_TO_BRANCH: 'master'
|
|
RELEASE_SYNC_FROM_BRANCH: 'master'
|
|
extends: .release-sync-commit-shared
|
|
|
|
publishMaven:
|
|
stage: publish
|
|
tags:
|
|
- large
|
|
script:
|
|
- ./gradlew publishNewRelease --no-daemon --no-parallel
|
|
only:
|
|
- master
|
|
artifacts:
|
|
expire_in: 10 days
|
|
paths:
|
|
- new_releases.tmp
|
|
- releases
|
|
- docs
|
|
- README.md
|
|
|
|
publishGradlePortal:
|
|
stage: publish
|
|
tags:
|
|
- small
|
|
script:
|
|
- ./gradlew -p plugins assemble && ./gradlew -p plugins publishAll
|
|
only:
|
|
- master
|
|
artifacts:
|
|
expire_in: 10 days
|
|
paths:
|
|
- new_releases.tmp
|
|
- releases
|
|
- docs
|
|
- README.md
|
|
|
|
commitRelease:
|
|
stage: commit
|
|
tags:
|
|
- small
|
|
needs:
|
|
- job: publishMaven
|
|
artifacts: true
|
|
script:
|
|
- ./util/commitRelease
|
|
only:
|
|
- master
|
|
|
|
postReleaseToSlack:
|
|
stage: slackRelease
|
|
tags:
|
|
- small
|
|
needs:
|
|
- job: publishMaven
|
|
artifacts: true
|
|
script:
|
|
- ./util/postReleaseToSlack
|
|
only:
|
|
- master
|
|
|
|
i18n-sync-crowdin:
|
|
extends: .i18n-sync-crowdin-common
|
|
variables:
|
|
I18N_SYNC_CROWDIN_PROJECT: 'android-core'
|
|
I18N_SYNC_BRANCH: 'master'
|
|
I18N_FILTER_OUT_ITEMS: 'coreexample'
|
|
|
|
i18n-commit-locales:
|
|
extends: .i18n-commit-locales-shared
|
|
variables:
|
|
I18N_COMMIT_CROWDIN_PROJECT: 'android-core'
|
|
I18N_COMMIT_BRANCH_PUSH: 'master'
|
|
I18N_COMMIT_BRANCH_ALLOWED: 'master'
|