2023-04-05 00:43:39 +00:00
|
|
|
name: Release to addons.mozilla.org
|
|
|
|
|
|
|
|
on:
|
2024-04-19 23:27:48 +00:00
|
|
|
# Run weekly every Friday
|
2023-04-05 00:43:39 +00:00
|
|
|
schedule:
|
2023-04-14 01:05:53 +00:00
|
|
|
- cron: "0 2 * * 6"
|
2024-04-19 23:27:48 +00:00
|
|
|
|
|
|
|
# Allow for manual releases if needed
|
2023-04-05 00:43:39 +00:00
|
|
|
workflow_dispatch:
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
submit-amo:
|
|
|
|
name: Submit to addons.mozilla.org
|
|
|
|
runs-on: ubuntu-22.04
|
2024-04-19 23:27:48 +00:00
|
|
|
|
2023-04-05 04:23:02 +00:00
|
|
|
if: github.repository == 'ruffle-rs/ruffle'
|
2023-04-05 00:43:39 +00:00
|
|
|
|
2023-04-05 04:23:02 +00:00
|
|
|
steps:
|
2024-04-19 23:27:48 +00:00
|
|
|
- name: Get latest release tag and date
|
|
|
|
id: release_info
|
|
|
|
env:
|
|
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
GH_REPO: ${{ github.repository }}
|
|
|
|
# NOTE: The following line relies on the output of the `gh` command (when piped) looking like this:
|
|
|
|
# "Nightly 2024-04-20 Pre-release nightly-2024-04-20 2024-04-20T00:03:23Z"
|
|
|
|
# And sets the following outputs: tag = "nightly-2024-04-20", date = "2024_04_20"
|
|
|
|
# NOTE: The hyphens in the date are replaced with underscores.
|
|
|
|
run: gh release list -L1 | awk '{ print "tag="$4; gsub(/-/, "_"); print "date="$2; }' >> "$GITHUB_OUTPUT"
|
|
|
|
|
2023-10-01 01:04:37 +00:00
|
|
|
- uses: actions/checkout@v4
|
2023-04-05 04:23:02 +00:00
|
|
|
with:
|
2024-04-19 23:27:48 +00:00
|
|
|
ref: ${{ steps.release_info.outputs.tag }}
|
2023-04-05 00:43:39 +00:00
|
|
|
|
2023-04-08 00:59:01 +00:00
|
|
|
- name: Install node packages
|
|
|
|
working-directory: web
|
|
|
|
shell: bash -l {0}
|
2024-04-19 23:27:48 +00:00
|
|
|
run: npm ci
|
2023-04-08 00:59:01 +00:00
|
|
|
|
2023-04-05 04:23:02 +00:00
|
|
|
- name: Download latest release assets
|
2023-04-08 00:17:59 +00:00
|
|
|
env:
|
|
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
GH_REPO: ${{ github.repository }}
|
2024-04-19 23:27:48 +00:00
|
|
|
RELEASE_TAG: ${{ steps.release_info.outputs.tag }}
|
|
|
|
RELEASE_DATE: ${{ steps.release_info.outputs.date }}
|
2023-04-05 04:23:02 +00:00
|
|
|
run: |
|
|
|
|
mkdir release_assets
|
2023-04-08 00:49:37 +00:00
|
|
|
gh release download --pattern "*.xpi" --pattern "*.zip" --dir release_assets $RELEASE_TAG
|
2023-04-05 00:43:39 +00:00
|
|
|
|
2023-04-08 00:49:37 +00:00
|
|
|
mv release_assets/ruffle-nightly-$RELEASE_DATE-reproducible-source.zip reproducible-source.zip
|
2023-04-05 00:43:39 +00:00
|
|
|
|
2023-04-05 04:23:02 +00:00
|
|
|
cd release_assets
|
2023-04-08 00:53:26 +00:00
|
|
|
unzip ruffle-nightly-$RELEASE_DATE-web-extension-firefox-unsigned.xpi
|
2023-04-05 04:23:02 +00:00
|
|
|
mv manifest.json ../web/packages/extension/assets/manifest.json
|
|
|
|
cd ..
|
2023-04-05 00:43:39 +00:00
|
|
|
|
2023-04-05 04:23:02 +00:00
|
|
|
mkdir web/packages/extension/dist
|
2023-04-08 00:53:26 +00:00
|
|
|
mv release_assets/ruffle-nightly-$RELEASE_DATE-web-extension-firefox-unsigned.xpi web/packages/extension/dist/firefox_unsigned.xpi
|
2024-04-19 23:27:48 +00:00
|
|
|
|
2023-04-05 04:23:02 +00:00
|
|
|
- name: Publish Firefox extension
|
|
|
|
id: sign-firefox
|
|
|
|
continue-on-error: true
|
|
|
|
env:
|
|
|
|
FIREFOX_EXTENSION_ID: ${{ secrets.FIREFOX_EXTENSION_ID }}
|
|
|
|
MOZILLA_API_KEY: ${{ secrets.MOZILLA_API_KEY }}
|
|
|
|
MOZILLA_API_SECRET: ${{ secrets.MOZILLA_API_SECRET }}
|
2024-04-19 23:27:48 +00:00
|
|
|
SOURCE_TAG: ${{ steps.release_info.outputs.tag }}
|
2023-04-05 04:23:02 +00:00
|
|
|
working-directory: web/packages/extension
|
|
|
|
shell: bash -l {0}
|
2024-04-19 23:27:48 +00:00
|
|
|
run: npm run sign-firefox
|