diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 51a6873ce6635680e34988a82b220fe4f5ff8037..1c4a595bb1ec4abdfc71f19a58c1ca8f8f478359 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -171,7 +171,7 @@ build:chrome:release:
 # Build for Firefox
 #
 
-.build:firefox:
+build:firefox:beta:
   stage: build
   image: node:lts-buster
   cache:
@@ -182,17 +182,8 @@ build:chrome:release:
   script:
     - npm install --global web-ext --cache "$CI_PROJECT_DIR/.cache/npm" --prefer-offline --no-audit
     - cd build/firefox
-    - web-ext -a . sign --channel=$CHANNEL
-    - mv safe_links_cleaner* ../../safelinks-cleaner-firefox-$VARIANT.xpi
-  artifacts:
-    paths:
-      - safelinks-cleaner-firefox-$VARIANT.xpi
-
-build:firefox:beta:
-  extends: .build:firefox
-  variables:
-    CHANNEL: unlisted
-    VARIANT: beta
+    - web-ext -a . sign --channel=unlisted
+    - mv safe_links_cleaner* ../../safelinks-cleaner-firefox-beta.xpi
   rules:
     - if: '$CI_COMMIT_BRANCH != "master"'
       when: never
@@ -207,11 +198,17 @@ build:firefox:beta:
     - when: never
 
 build:firefox:release:
-  extends: .build:firefox
-  variables:
-    CHANNEL: listed
-    VARIANT: release
+  stage: build
+  image: python:3.7-stretch
   <<: *release_rules
+  script:
+    - apt-get -y update
+    - apt-get -y install zip
+    - cd build/firefox
+    - zip -r ../../safelinks-cleaner-firefox-release.zip *
+  artifacts:
+    paths:
+      - safelinks-cleaner-firefox-release.zip
 
 
 #
@@ -314,26 +311,45 @@ pages:
 upload:
   stage: collect
   image: curlimages/curl:latest
+  <<: *release_rules
   script:
     - VERSION=$(cat version)
     - PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${VERSION}"
-    - |
-      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file safelinks-cleaner-firefox-release.xpi ${PACKAGE_REGISTRY_URL}/
-    - |
-      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file safelinks-cleaner-thunderbird-release.xpi ${PACKAGE_REGISTRY_URL}/
-    - |
-      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file safelinks-cleaner-edge-release.zip ${PACKAGE_REGISTRY_URL}/
-    - |
-      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file safelinks-cleaner-chrome-release.zip ${PACKAGE_REGISTRY_URL}/
-  <<: *release_rules
+    - >
+      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}"
+           --upload-file safelinks-cleaner-firefox-release.zip
+           ${PACKAGE_REGISTRY_URL}/
+    - >
+      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}"
+           --upload-file safelinks-cleaner-thunderbird-release.xpi
+           ${PACKAGE_REGISTRY_URL}/
+    - >
+      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}"
+           --upload-file safelinks-cleaner-edge-release.zip
+           ${PACKAGE_REGISTRY_URL}/
+    - >
+      curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}"
+           --upload-file safelinks-cleaner-chrome-release.zip
+           ${PACKAGE_REGISTRY_URL}/
     
 
 release:
   stage: deploy
   image: registry.gitlab.com/gitlab-org/release-cli:latest
+  <<: *release_rules
   script:
     - VERSION=$(cat version)
     - PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/${VERSION}"
-    - |
-      release-cli create --name "Release $VERSION" --description "Release $VERSION" --tag-name "release-$VERSION" --assets-link "{\"name\":\"safelinks-cleaner-thunderbird-release.xpi\",\"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-thunderbird-release.xpi\"}" --assets-link "{\"name\":\"safelinks-cleaner-firefox-release.xpi\",\"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-firefox-release.xpi\"}" --assets-link "{\"name\":\"safelinks-cleaner-edge-release.zip\",\"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-edge-release.zip\"} --assets-link "{\"name\":\"safelinks-cleaner-chrome-release.zip\",\"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-chrome-release.zip\"}"
-  <<: *release_rules
+    - >
+      release-cli create
+        --name "Release $VERSION"
+        --description "Release $VERSION"
+        --tag-name "release-$VERSION"
+        --assets-link "{\"name\":\"safelinks-cleaner-thunderbird-release.xpi\",
+                        \"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-thunderbird-release.xpi\"}"
+        --assets-link "{\"name\":\"safelinks-cleaner-firefox-release.zip\",
+                        \"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-firefox-release.zip\"}"
+        --assets-link "{\"name\":\"safelinks-cleaner-edge-release.zip\",
+                        \"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-edge-release.zip\"}"
+        --assets-link "{\"name\":\"safelinks-cleaner-chrome-release.zip\",
+                        \"url\":\"${PACKAGE_REGISTRY_URL}/safelinks-cleaner-chrome-release.zip\"}"