protoncore_android/.gitlab-ci.yml

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'