diff options
author | Darius Jahandarie <djahandarie@gmail.com> | 2023-03-11 21:17:55 +0900 |
---|---|---|
committer | Darius Jahandarie <djahandarie@gmail.com> | 2023-03-18 10:45:57 +0900 |
commit | 06251f190b9d04a5ef60480e218a7c5d6ffe9be4 (patch) | |
tree | 202c4cb0eca1c0ee6dd13a5fe65dddae49c3919e /.github/workflows/publish-firefox-development.yml | |
parent | 0314a8620f952aa5b0129e93f2d0956b0e0cc7c2 (diff) |
Add CD to build and publish extension to Chrome & Firefox stores
Resolves #85.
Diffstat (limited to '.github/workflows/publish-firefox-development.yml')
-rw-r--r-- | .github/workflows/publish-firefox-development.yml | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/.github/workflows/publish-firefox-development.yml b/.github/workflows/publish-firefox-development.yml new file mode 100644 index 00000000..5699311f --- /dev/null +++ b/.github/workflows/publish-firefox-development.yml @@ -0,0 +1,86 @@ +# For the Firefox development addon, people install it manually, +# and updates are distributed via the JSON file created in this +# action which is stored in the metadata branch of this repo. + +name: publish-firefox-development +on: + release: + types: [prereleased] +permissions: + contents: write +jobs: + build-signed-xpi-asset: + needs: ensure-zip + runs-on: ubuntu-latest + environment: cd + steps: + - uses: actions/checkout@v3 + + - uses: robinraju/release-downloader@768b85c8d69164800db5fc00337ab917daf3ce68 # pin@v1.7 + with: + release: ${{ github.event.release.id }} + fileName: "*" + + - name: Sign Firefox xpi for offline distribution + id: ffSignXpi + continue-on-error: true + uses: cardinalby/webext-buildtools-firefox-sign-xpi-action@94a2e58141e33c4306a72a93f191e8540189df92 # pin@v1.0.6 + with: + timeoutMs: 1200000 + extensionId: ${{ secrets.FF_OFFLINE_EXT_ID }} + zipFilePath: builds/yomitan-firefox-dev.zip + xpiFilePath: builds/yomitan-firefox-dev.xpi + jwtIssuer: ${{ secrets.FF_JWT_ISSUER }} + jwtSecret: ${{ secrets.FF_JWT_SECRET }} + + - name: Abort on sign error + if: | + steps.ffSignXpi.outcome == 'failure' && + steps.ffSignXpi.outputs.sameVersionAlreadyUploadedError != 'true' + run: exit 1 + + - name: Upload offline xpi release asset + id: uploadReleaseAsset + if: steps.ffSignXpi.outcome == 'success' + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: builds/yomitan-firefox.xpi + asset_name: yomitan-firefox.xpi + asset_content_type: application/x-xpinstall + + # update update.json so that all people who have the dev version installed get the new update + + - uses: actions/checkout@v3 + with: + ref: metadata + + - name: Recreate update.json + run: | + cat > update.json << EOF + { + "addons": { + "themoeway+development@googlegroups.com": { + "updates": [ + { + "version": "${{ github.event.release.name }}", + "update_link": "${{ uploadReleaseAsset.browser_download_url }}" + } + ] + } + } + } + EOF + + - name: Commit files + run: | + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + git commit -a -m "${{ github.event.release.name }} - ${{ github.event.release.html_url }}" + + - name: Push changes + uses: ad-m/github-push-action@0fafdd62b84042d49ec0cb92d9cac7f7ce4ec79e # pin@master + with: + branch: metadata |