futo-keyboard/.gitlab-ci.yml
Aleksandras Kostarevas c79036857a Add signingReport to CI
2025-11-28 19:24:33 +02:00

112 lines
No EOL
4.3 KiB
YAML

default:
image: "gitlab.futo.org:5050/keyboard/latinime/gradle:35-1"
variables:
GIT_SUBMODULE_STRATEGY: recursive
GIT_SUBMODULE_FORCE_HTTPS: "true"
GIT_STRATEGY: clone
GIT_DEPTH: 0
stages: # List of stages for jobs, and their order of execution
- sync_translations
- build
sync_strings_xml:
tags:
- docker
stage: sync_translations
only:
refs:
- master
script:
- sh syncTranslations.sh
buildUnstableBranch:
stage: build
tags:
- docker
rules:
- if: '$CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != "master"'
when: manual
- when: never # block everything else (e.g. tags, master)
needs: []
before_script:
- git fetch origin $CI_COMMIT_BRANCH:$CI_COMMIT_BRANCH
- export GIT_BRANCH="$CI_COMMIT_BRANCH"
- export GIT_DESCRIBE="$(git describe --tags --dirty)"
- export GIT_REV_LIST="$(git rev-list --first-parent --count $GIT_BRANCH)"
- export VERSION_NAME="${GIT_DESCRIBE}--branch-${GIT_BRANCH}-${GIT_REV_LIST}"
- export VERSION_CODE="$(curl -s https://dl.keyboard.futo.org/nightly_version | head -n 1 | tr -d '\r')"
- echo $VERSION_CODE $VERSION_NAME
- ./setUpPropertiesCI.sh
script:
- gradle assembleUnstableRelease -s
- mv build/outputs/apk/unstable/release/latinime-unstable-release.apk ./keyboard-unstable-$VERSION_NAME.apk
- ./uploadNightlyBranch.sh ./keyboard-unstable-$VERSION_NAME.apk $VERSION_CODE $VERSION_NAME $GIT_BRANCH
artifacts:
name: "keyboard-unstable-$VERSION_NAME"
paths:
- ./*.apk
buildUnstable:
tags:
- docker
stage: build
needs: []
before_script:
- git fetch origin master:master
- export VERSION_NAME=`git describe --tags --dirty`
- export VERSION_CODE=`git rev-list --first-parent --count master`
- echo $VERSION_CODE $VERSION_NAME
- ./setUpPropertiesCI.sh
script:
- gradle signingReport
- gradle assembleUnstableRelease -s
- mv build/outputs/apk/unstable/release/latinime-unstable-release.apk ./keyboard-unstable-$VERSION_NAME.apk
- touch VERSION_CODE_$VERSION_CODE.txt
- touch VERSION_NAME_$VERSION_NAME.txt
- echo "Keyboard (Unstable) $VERSION_NAME - https://gitlab.futo.org/alex/latinime/-/jobs/$CI_JOB_ID/artifacts/raw/keyboard-unstable-$VERSION_NAME.apk"
- echo $VERSION_CODE $VERSION_NAME
- ./uploadNightly.sh ./keyboard-unstable-$VERSION_NAME.apk $VERSION_CODE $VERSION_NAME-unstable
artifacts:
name: "keyboard-unstable-$VERSION_NAME"
paths:
- ./*.apk
- ./*.aab
- ./*.txt
when: manual
buildStable:
tags:
- docker
stage: build
needs: []
before_script:
- git fetch origin master:master
- export VERSION_NAME=`git describe --tags`
- export VERSION_CODE=`git rev-list --first-parent --count master`
- echo $VERSION_CODE $VERSION_NAME
- ./setUpPropertiesCI.sh
script:
- gradle updateBundleResources -s
- gradle bundlePlaystoreRelease -s
- gradle assembleStableRelease -s
- if grep -q "android.permission.INTERNET" build/intermediates/bundle_manifest/playstoreRelease/processApplicationManifestPlaystoreReleaseForBundle/AndroidManifest.xml; then echo "Internet permission check failed for play store"; exit 1; fi
- if grep -q "android.permission.INTERNET" build/intermediates/packaged_manifests/stableRelease/processStableReleaseManifestForPackage/AndroidManifest.xml; then echo "Internet permission check failed for stable"; exit 1; fi
- echo "All checks OK"
- echo "Standalone permissions" && grep "uses-permission" build/intermediates/packaged_manifests/stableRelease/processStableReleaseManifestForPackage/AndroidManifest.xml
- echo "Play Store permissions" && grep "uses-permission" build/intermediates/bundle_manifest/playstoreRelease/processApplicationManifestPlaystoreReleaseForBundle/AndroidManifest.xml
- mv build/outputs/apk/stable/release/latinime-stable-release.apk ./keyboard-$VERSION_NAME.apk
- mv build/outputs/bundle/playstoreRelease/latinime-playstore-release.aab ./keyboard-playstore-$VERSION_NAME.aab
- touch VERSION_CODE_$VERSION_CODE.txt
- touch VERSION_NAME_$VERSION_NAME.txt
- echo "Keyboard $VERSION_NAME - https://gitlab.futo.org/alex/latinime/-/jobs/$CI_JOB_ID/artifacts/raw/keyboard-$VERSION_NAME.apk"
- echo $VERSION_CODE $VERSION_NAME
artifacts:
name: "keyboard-stable-$VERSION_NAME"
paths:
- ./*.apk
- ./*.aab
- ./*.txt
when: manual