stages: - compiling - publishing image: passwords-webextension-builder Compile Firefox: stage: compiling variables: GIT_SUBMODULE_STRATEGY: recursive script: - mkdir dist - npm ci - npm run build:firefox - if [ "${CI_COMMIT_REF_NAME}" == "stable" ] ; then sed -i -e "s|.BUILD||g" ./build/manifest.json ; fi - if [ "${CI_COMMIT_REF_NAME}" != "stable" ] ; then sed -i -e "s|BUILD|${CI_PIPELINE_ID}|g" ./build/manifest.json ; fi - sed -i -e "s|CI_COMMIT_REF_NAME|${CI_COMMIT_REF_NAME}|g" ./build/html/build.html - sed -i -e "s|CI_PROJECT_NAME|${CI_PROJECT_NAME}|g" ./build/html/build.html - sed -i -e "s|CI_PROJECT_URL|${CI_PROJECT_URL}|g" ./build/html/build.html - sed -i -e "s|CI_PIPELINE_ID|${CI_PIPELINE_ID}|g" ./build/html/build.html - sed -i -e "s|CI_COMMIT_SHA|${CI_COMMIT_SHA}|g" ./build/html/build.html - sed -i -e "s|CI__|CI_|g" ./build/html/build.html - mv build dist/firefox-extension artifacts: paths: - ./dist/firefox-extension Compile Chrome: stage: compiling variables: GIT_SUBMODULE_STRATEGY: recursive script: - mkdir dist - npm ci - npm run build:chrome - sed -i -e "s|99999|${CI_PIPELINE_ID}|g" ./build/manifest.json - sed -i -e "s|CI_COMMIT_REF_NAME|${CI_COMMIT_REF_NAME}|g" ./build/html/build.html - sed -i -e "s|CI_PROJECT_NAME|${CI_PROJECT_NAME}|g" ./build/html/build.html - sed -i -e "s|CI_PROJECT_URL|${CI_PROJECT_URL}|g" ./build/html/build.html - sed -i -e "s|CI_PIPELINE_ID|${CI_PIPELINE_ID}|g" ./build/html/build.html - sed -i -e "s|CI_COMMIT_SHA|${CI_COMMIT_SHA}|g" ./build/html/build.html - sed -i -e "s|CI__|CI_|g" ./build/html/build.html - mv build dist/chrome-extension artifacts: paths: - ./dist/chrome-extension Publish Nightly Firefox: stage: publishing script: - 'export ARTIFACT_URL=${CI_PROJECT_URL}/firefox/${CI_COMMIT_REF_NAME}/FILENAME' - 'sed -i -e "s|\"gecko\": {|\"gecko\":{\"update_url\":\"ARTIFACT_URL\",|g" ./dist/firefox-extension/manifest.json' - 'sed -i -e "s|ARTIFACT_URL|${ARTIFACT_URL}|g" ./dist/firefox-extension/manifest.json' - 'sed -i -e "s|FILENAME|updates.json|g" ./dist/firefox-extension/manifest.json' - 'web-ext sign --channel unlisted --ignore-files updates.json' - 'sed -i -e "s|ARTIFACT_URL|${ARTIFACT_URL}|g" ./dist/firefox-extension/updates.json' - 'export EXT_FILENAME=$(cd ./dist/firefox-extension/ && ls *.xpi)' - 'sed -i -e "s|FILENAME|${EXT_FILENAME}|g" ./dist/firefox-extension/updates.json' - 'export EXT_VERSION=$(node -p -e "require(\"./dist/firefox-extension/manifest.json\").version")' - 'sed -i -e "s|VERSION|${EXT_VERSION}|g" ./dist/firefox-extension/updates.json' - 'export SHA_512=$(sha512sum ./dist/firefox-extension/${EXT_FILENAME} | cut -d\ -f 1)' - 'sed -i -e "s|SHA_512|${SHA_512}|g" ./dist/firefox-extension/updates.json' - 'export CHANGELOG_URL=${CI_PROJECT_URL}/raw/${CI_COMMIT_SHA}/Changelog.md' - 'sed -i -e "s|CHANGELOG_URL|${CHANGELOG_URL}|g" ./dist/firefox-extension/updates.json' environment: name: Testing only: - testing artifacts: paths: - ./dist/firefox-extension/updates.json - ./dist/firefox-extension/*.xpi Publish Nightly Chrome: stage: publishing allow_failure: true script: - 'export WEXT_SHIPIT_CHROME_EXTENSION_ID=${CHROME_EXTENSION_ID_TESTING}' - 'shipit chrome dist/chrome-extension' environment: name: Testing only: - testing Publish Nightly Edge: stage: publishing allow_failure: true script: - 'cd dist/chrome-extension' - 'zip -r -9 ../../edge-extension.zip ./*' environment: name: Testing only: - testing artifacts: paths: - ./edge-extension.zip Publish Stable Firefox: stage: publishing script: - 'rm dist/firefox-extension/updates.json' - 'web-ext-submit --channel listed' environment: name: Stable only: - stable Publish Stable Chrome: stage: publishing script: - 'export WEXT_SHIPIT_CHROME_EXTENSION_ID=${CHROME_EXTENSION_ID_STABLE}' - 'shipit chrome dist/chrome-extension' environment: name: Stable only: - stable Publish Stable Edge: stage: publishing allow_failure: true script: - 'cd dist/chrome-extension' - 'zip -r -9 ../../edge-extension.zip ./*' environment: name: Stable only: - stable artifacts: paths: - ./edge-extension.zip