aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/publish-firefox-development.yml
diff options
context:
space:
mode:
authorDarius Jahandarie <djahandarie@gmail.com>2023-03-11 21:17:55 +0900
committerDarius Jahandarie <djahandarie@gmail.com>2023-03-18 10:45:57 +0900
commit06251f190b9d04a5ef60480e218a7c5d6ffe9be4 (patch)
tree202c4cb0eca1c0ee6dd13a5fe65dddae49c3919e /.github/workflows/publish-firefox-development.yml
parent0314a8620f952aa5b0129e93f2d0956b0e0cc7c2 (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.yml86
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