image: jangrewe/gitlab-ci-android stages: - build before_script: - 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[[:blank:]]' ./nhterm/build.gradle | awk '{print $2}' | sed s/\"//g` - export VERSION_CODE=`egrep '^[[:blank:]]+versionCode[[:blank:]]' ./nhterm/build.gradle | awk '{print $2}' | sed s/\"//g` - 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 (_.apk) # The artifacts are named --.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/