From d0135d7632280b0f1fd9cf3c11924721f1bdad50 Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Fri, 27 Aug 2021 10:14:00 +0200 Subject: [PATCH] Create jobs for released versions --- .gitlab-ci.yml | 46 ++++++++++++++++--- metadata/preview.template.yml | 18 ++++++++ .../{template.yml => release.template.yml} | 4 +- 3 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 metadata/preview.template.yml rename metadata/{template.yml => release.template.yml} (93%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6398d7e..c426a4b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,23 +28,27 @@ stages: stage: build variables: apk_file: 'app/build/outputs/apk/debug/app-debug.apk' - metadata_file: 'metadata/audio.funkwhale.android.yml' + metadata_file: 'metadata/audio.funkwhale.android.dev.yml' + metadata_template: 'metadata/preview.template.yml' + output_metadata: 'app/build/outputs/apk/debug/output-metadata.json' before_script: - git fetch --unshallow --tags after_script: - export versionCode=`$ANDROID_HOME/build-tools/30.0.2/aapt dump badging $apk_file | grep versionCode | awk '{print $3}' | sed s/versionCode=//g | sed s/\'//g` - apt update && apt install gettext-base - - cat metadata/template.yml | envsubst > $metadata_file + - cat $metadata_template | envsubst > $metadata_file extends: .gradle-default artifacts: paths: - $apk_file - $metadata_file - - app/build/outputs/apk/debug/output-metadata.json + - $output_metadata test: extends: .gradle-default stage: test + except: + - tags script: - ./gradlew test jacocoTestReport - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, " instructions covered"; print 100*covered/instructions, "% covered" }' $JACOCO_CSV_LOCATION @@ -63,6 +67,8 @@ coverage: needs: [ "test" ] dependencies: - test + except: + - tags artifacts: reports: cobertura: $COBERTURA_REPORT @@ -70,11 +76,24 @@ coverage: build-develop: extends: .build script: - - echo -n $SIGNING_KEY_STORE | base64 -d > app/android.keystore - - ./gradlew assembleDebug -Psigning.store=android.keystore -Psigning.store_passphrase=$SIGNING_KEY_PASS -Psigning.key_passphrase=$SIGNING_KEY_PASS + - 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 only: - develop +build-release: + variables: + apk_file: 'app/build/outputs/apk/release/app-release.apk' + output_metadata: 'app/build/outputs/apk/release/output-metadata.json' + metadata_template: 'metadata/release.template.yml' + metadata_file: 'metadata/audio.funkwhale.android.yml' + 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 + only: + - tags + build-bleeding-edge: extends: .build script: @@ -91,7 +110,22 @@ deploy-develop: - ssh-add <(echo "$SSH_PRIVATE_KEY") - scp -o StrictHostKeyChecking=no app/build/outputs/apk/debug/app-debug.apk fdroid@apps.funkwhale.audio:/srv/fdroid/fdroid/develop/repo/audio.funkwhale.ffa.dev-$CI_COMMIT_SHORT_SHA.apk - scp -o StrictHostKeyChecking=no app/build/outputs/apk/debug/output-metadata.json fdroid@apps.funkwhale.audio:/srv/fdroid/fdroid/develop/output-metadata.json - - scp -o StrictHostKeyChecking=no metadata/audio.funkwhale.android.yml fdroid@apps.funkwhale.audio:/srv/fdroid/fdroid/develop/metadata/audio.funkwhale.ffa.dev.yml + - scp -o StrictHostKeyChecking=no metadata/audio.funkwhale.android.dev.yml fdroid@apps.funkwhale.audio:/srv/fdroid/fdroid/develop/metadata/audio.funkwhale.ffa.dev.yml + - ssh -o StrictHostKeyChecking=no fdroid@apps.funkwhale.audio 'docker run --rm -u $(id -u):$(id -g) -v /srv/fdroid/fdroid/develop:/repo registry.gitlab.com/fdroid/docker-executable-fdroidserver:master update' + tags: + - shell + +deploy-release: + stage: deploy + only: + - tags + script: + - eval `ssh-agent -s` + - ssh-add <(echo "$SSH_PRIVATE_KEY") + #- scp -o StrictHostKeyChecking=no app/build/outputs/apk/release/app-release.apk fdroid@apps.funkwhale.audio:/srv/fdroid/fdroid/develop/repo/audio.funkwhale.ffa.-$CI_COMMIT_TAG.apk + - scp -o StrictHostKeyChecking=no app/build/outputs/apk/release/app-release.apk fdroid@apps.funkwhale.audio:/srv/fdroid/fdroid/develop/repo/audio.funkwhale.ffa.-0.0.1.apk + - scp -o StrictHostKeyChecking=no app/build/outputs/apk/release/output-metadata.json fdroid@apps.funkwhale.audio:/srv/fdroid/fdroid/develop/output-metadata.json + - scp -o StrictHostKeyChecking=no metadata/audio.funkwhale.android.yml fdroid@apps.funkwhale.audio:/srv/fdroid/fdroid/develop/metadata/audio.funkwhale.ffa.yml - ssh -o StrictHostKeyChecking=no fdroid@apps.funkwhale.audio 'docker run --rm -u $(id -u):$(id -g) -v /srv/fdroid/fdroid/develop:/repo registry.gitlab.com/fdroid/docker-executable-fdroidserver:master update' tags: - shell diff --git a/metadata/preview.template.yml b/metadata/preview.template.yml new file mode 100644 index 0000000..7b83612 --- /dev/null +++ b/metadata/preview.template.yml @@ -0,0 +1,18 @@ +Categories: + - Multimedia + - Funkwhale +License: MIT +AuthorName: Funkwhale Collective +WebSite: https://funkwhale.audio +SourceCode: https://dev.funkwhale.audio/funkwhale/funkwhale-android/ +IssueTracker: https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues +Translation: https://translate.funkwhale.audio/projects/funkwhale/ffa/ + +Name: Funkwhale (preview) +Summary: This is the development version of the official Funkwhale App for Android. + +AutoUpdateMode: None +UpdateCheckMode: Tags +UpdateCheckData: output-metadata.json|"version_code":.*"(.*)"|output-metadata.json|"versionName":.*\"(.*)\", +CurrentVersion: $versionCode + diff --git a/metadata/template.yml b/metadata/release.template.yml similarity index 93% rename from metadata/template.yml rename to metadata/release.template.yml index b307656..41d8482 100644 --- a/metadata/template.yml +++ b/metadata/release.template.yml @@ -2,13 +2,13 @@ Categories: - Multimedia - Funkwhale License: MIT -AuthorName: Funkwhale +AuthorName: Funkwhale Collective WebSite: https://funkwhale.audio SourceCode: https://dev.funkwhale.audio/funkwhale/funkwhale-android/ IssueTracker: https://dev.funkwhale.audio/funkwhale/funkwhale-android/-/issues Translation: https://translate.funkwhale.audio/projects/funkwhale/ffa/ -Name: Funkwhale (preview) +Name: Funkwhale Summary: This is the official and native Android music player for Funkwhale, native to both Android (developed in Kotlin) and to Funkwhale (uses its native API instead of Subsonic).