Custom Build Image

This commit is contained in:
Georg Krause 2021-12-22 14:54:55 +00:00 committed by Ryan Harg
parent e000aa5e6a
commit 37409bdd7a
2 changed files with 44 additions and 5 deletions

View File

@ -1,4 +1,4 @@
image: jangrewe/gitlab-ci-android
image: dev.funkwhale.audio:5050/funkwhale/funkwhale-android:latest
variables:
COBERTURA_REPORT: '$CI_PROJECT_DIR/app/build/reports/cobertura.xml'
@ -6,11 +6,33 @@ variables:
JACOCO_XML_LOCATION: '$CI_PROJECT_DIR/app/build/reports/jacoco/jacocoTestReport/jacocoTestReport.xml'
stages:
- build_ci_env
- test
- visualize
- build
- deploy
build_ci_image:
stage: build_ci_env
image: egon0/docker-with-buildx-and-git:bash
tags:
- dind
services:
- docker:20-dind
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
script:
- docker build -t $CI_REGISTRY_IMAGE docker
after_script:
- docker push $CI_REGISTRY_IMAGE
rules:
- if: '$BUILD_CI_IMAGE'
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
DOCKER_TLS_CERTDIR: ""
.gradle-default:
before_script:
- export GRADLE_USER_HOME=$(pwd)/.gradle
@ -50,7 +72,7 @@ test:
except:
- tags
script:
- ./gradlew test jacocoTestReport
- ./gradlew --no-daemon --stacktrace test jacocoTestReport
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, " instructions covered"; print 100*covered/instructions, "% covered" }' $JACOCO_CSV_LOCATION
artifacts:
reports:
@ -77,7 +99,7 @@ build-develop:
extends: .build
script:
- echo -n $PREVIEW_SIGNING_KEY_STORE | base64 -d > app/android.keystore
- ./gradlew assembleDebug -Psigning.store=android.keystore -Psigning.store_passphrase=$PREVIEW_SIGNING_KEY_PASS -Psigning.key_passphrase=$PREVIEW_SIGNING_KEY_PASS
- ./gradlew --stacktrace --no-daemon assembleDebug -Psigning.store=android.keystore -Psigning.store_passphrase=$PREVIEW_SIGNING_KEY_PASS -Psigning.key_passphrase=$PREVIEW_SIGNING_KEY_PASS
only:
- develop
@ -90,14 +112,14 @@ build-release:
extends: .build
script:
- echo -n $SIGNING_KEY_STORE | base64 -d > app/android.keystore
- ./gradlew assembleRelease -Psigning.store=android.keystore -Psigning.store_passphrase=$SIGNING_KEY_PASS -Psigning.key_passphrase=$SIGNING_KEY_PASS
- ./gradlew --stacktrace --no-daemon assembleRelease -Psigning.store=android.keystore -Psigning.store_passphrase=$SIGNING_KEY_PASS -Psigning.key_passphrase=$SIGNING_KEY_PASS
only:
- tags
build-bleeding-edge:
extends: .build
script:
- ./gradlew assembleDebug
- ./gradlew --stacktrace --no-daemon assembleDebug
except:
- develop
- tags

17
docker/Dockerfile Normal file
View File

@ -0,0 +1,17 @@
FROM debian:stable-slim
ENV ANDROID_COMPILE_SDK=30
ENV SDK_TOOLS_VERSION=30.0.2
ENV ANDROID_CMD_TOOLS=7583922
ENV ANDROID_HOME=/opt/android-sdk-linux
ENV PATH "/opt/android-sdk-linux/cmdline-tools/bin:${PATH}"
RUN apt-get update && apt-get install --yes openjdk-11-jdk wget tar unzip lib32stdc++6 lib32z1 git
RUN mkdir -p /opt/android-sdk-linux && cd /opt \
&& wget -q https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_CMD_TOOLS}_latest.zip -O android-sdk-tools.zip \
&& unzip -q android-sdk-tools.zip -d ${ANDROID_HOME} \
&& rm -f android-sdk-tools.zip \
&& echo y | sdkmanager --sdk_root=${ANDROID_HOME} "platforms;android-${ANDROID_COMPILE_SDK}" \
&& echo y | sdkmanager --sdk_root=${ANDROID_HOME} "platform-tools" \
&& echo y | sdkmanager --sdk_root=${ANDROID_HOME} "build-tools;${SDK_TOOLS_VERSION}"