android_terminal/.gitlab-ci.yml
Martin Valba ccea8146c8 Use jdk-17
* * Until the jangrewe/gitlab-ci-android decides to merge the https://github.com/jangrewe/gitlab-ci-android/pull/77
2023-09-09 19:40:49 +00:00

87 lines
2.8 KiB
YAML

image: jangrewe/gitlab-ci-android
stages:
- build
before_script:
- apt update && apt -y install openjdk-17-jdk
- JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
- export GRADLE_USER_HOME=$(pwd)/.gradle
- export PACKAGE=`egrep '^[[:blank:]]+package' ./nhterm/src/main/AndroidManifest.xml | awk -F'[=>]' '{print $2}' | sed s/\"//g`
- export VERSION_NAME=`egrep '^[[:blank:]]+versionName=' ./build.gradle | awk -F '"' '{print $2}'`
- export VERSION_CODE=`egrep '^[[:blank:]]+versionCode=' ./build.gradle | awk -F '=' '{print $2}'`
- export APK_NAME="${PACKAGE}_${VERSION_CODE}"
- chmod +x ./gradlew
- echo $PACKAGE
- echo $VERSION_NAME
- echo $VERSION_CODE
- echo $APK_NAME
# Jobs to build debug and unsigned release apk in accordance with the NetHunter Store naming conventions (<app id>_<version_code>.apk)
# The artifacts are named <branch name>-<commit short sha>-<job name>.zip
# To execute a job using local runners, run "mkdir ./result" and one of the following:
# sudo gitlab-runner exec docker .assembleDebug --docker-volumes `pwd`/result:/tmp/result
# sudo gitlab-runner exec docker .assembleRelease --docker-volumes `pwd`/result:/tmp/result
.assembleDebug:
stage: build
script:
- ./gradlew :nhterm:assembleDebug
- mkdir -p result
- ls ./nhterm/build/outputs/apk/debug/
- mv ./nhterm/build/outputs/apk/debug/nhterm-debug.apk result/${APK_NAME}-debug.apk || mv ./nhterm/build/outputs/apk/debug/*-debug.apk result/${APK_NAME}-debug.apk
- ls result/
- if [ -d /tmp/result ]; then cp result/* /tmp/result; fi # Copy it to host if run locally
artifacts:
name: "$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
paths:
- ./result/*.apk
expire_in: 1 week
.assembleRelease:
stage: build
script:
- ./gradlew :nhterm:assembleRelease
- mkdir -p result
- ls ./nhterm/build/outputs/apk/release/
- mv ./nhterm/build/outputs/apk/release/nhterm-release-unsigned.apk result/${APK_NAME}.apk || mv ./nhterm/build/outputs/apk/release/*-release-unsigned.apk result/${APK_NAME}.apk
- ls result/
- if [ -d /tmp/result ]; then cp result/* /tmp/result; fi # Copy it to host if run locally
artifacts:
name: "$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
paths:
- ./result/*.apk
expire_in: 1 week
# Rules to build automatically:
# Debug builds in all branches except "master"
# Release builds in the "master" branch
# Both debug and release apk can be build manually in any branch
assembleDebugAuto:
extends: .assembleDebug
only:
- branches
except:
- master
assembleDebugManual:
extends: .assembleDebug
when: manual
assembleReleaseAuto:
extends: .assembleRelease
only:
- master
assembleReleaseManual:
extends: .assembleRelease
when: manual
cache:
key: ${CI_PROJECT_ID}
paths:
- .gradle/