diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 16f9171d7f1b89243cc749a96a58000749dfe7cd..d41b2eef31d53911db606b9e742c0cf0e2e16674 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,26 +12,36 @@ stages:
   - deploy
 
 .gradle-default:
-  stage: build
   before_script:
     - export GRADLE_USER_HOME=$(pwd)/.gradle
     - chmod +x ./gradlew
     - mkdir -p .android && touch .android/repositories.cfg
   script:
     - echo "Overwrite me"
-
   cache:
     key: ${CI_PROJECT_ID}
     paths:
-      - .gradle/
+      - .gradle/wrapper
+      - .gradle/caches
+      - app/build
 
 .build:
-  before_script: 
-    - git fetch --unshallow --tags
+  stage: build
   extends: .gradle-default
+  variables:
+    apk_file: 'app/build/outputs/apk/debug/app-debug.apk'
+    metadata_file: 'metadata/audio.funkwhale.android.yml'
+  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
   artifacts:
     paths:
-      - app/build/outputs/apk/debug/app-debug.apk
+      - $apk_file
+      - $metadata_file
+      - app/build/outputs/apk/debug/output-metadata.json
 
 test:
   extends: .gradle-default
@@ -81,6 +91,8 @@ deploy-develop:
     - eval `ssh-agent -s`
     - 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
     - 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/gradle.properties b/gradle.properties
index 09b39914d8adc076bbc4ed5d021b41c180103fe7..3cb41f250299eb6c869460aa127ce4c27f6abf68 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -4,3 +4,4 @@ kotlin.code.style=official
 
 android.useAndroidX=true
 android.enableJetifier=true
+org.gradle.caching=true
\ No newline at end of file