Skip to content

cssnr/mozilla-addon-update-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

GitHub Tag Major GitHub Tag Minor GitHub Release Version Workflow Release Workflow Test Workflow Lint Quality Gate Status GitHub Last Commit Codeberg Last Commit GitHub Contributors GitHub Repo Size GitHub Top Language GitHub Discussions GitHub Forks GitHub Repo Stars GitHub Org Stars Discord Ko-fi

Mozilla Addon Update Action

Update the Mozilla Firefox Update JSON File after a Release for Self Hosted Extensions.

Inputs

Input Default Short Description of the Input Value
url Required Update URL with {version} in the string.
update update.json Update JSON File Location
manifest manifest.json * Manifest File Location
version - * Override Version from manifest
addon_id - * Override Addon ID from manifest

manifest - If provided the version and addon_id will be parsed from this file.

version - Manually specify the version to use for {version} in url.

addon_id - Manually specify the addon_id to use for update JSON file. If not provided this is parsed from the manfiest key: browser_specific_settings.gecko.id

- name: 'Mozilla Addon Update'
  uses: cssnr/mozilla-addon-update-action@v1
  with:
    url: 'https://github.com/cssnr/link-extractor/releases/download/{version}/link_extractor-firefox.xpi'

Outputs

Output Description
url Update URL Result
result Update JSON Result
- name: 'Mozilla Addon Update'
  id: update
  uses: cssnr/mozilla-addon-update-action@v1
  with:
    url: 'https://github.com/cssnr/link-extractor/releases/download/{version}/link_extractor-firefox.xpi'

- name: 'Echo Outputs'
  run: |
    echo '${{ steps.update.outputs.url }}'
    echo '${{ steps.update.outputs.result }}'

Notes

This action expects the input_update JSON file to exist, be valid JSON and have a matching addon_id entry. At a minimum, add a file similar to this where link-extractor@cssnr.com is your Addon ID:

{
  "addons": {
    "link-extractor@cssnr.com": {
      "updates": []
    }
  }
}

For more details see: src/main.py.

Mozilla Documentation: https://extensionworkshop.com/documentation/manage/updating-your-extension/

Examples

Basic Example with All Inputs:

- name: 'Mozilla Addon Update'
  uses: cssnr/mozilla-addon-update-action@v1
  with:
    url: 'https://github.com/cssnr/link-extractor/releases/download/{version}/link_extractor-firefox.xpi'
    update: update.json
    manifest: manifest.json
    version: '1.0.0'
    addon_id: link-extractor@cssnr.com

Simple Example:

name: 'Mozilla Addon Update'

on:
  workflow_dispatch:
  release:
    types: [published]

jobs:
  mozilla-update:
    name: 'Mozilla Addon Update'
    runs-on: ubuntu-latest
    timeout-minutes: 5
    if: ${{ github.event_name == 'release' }}

    steps:
      - name: 'Checkout'
        uses: actions/checkout@v4

      - name: 'Mozilla Addon Update'
        uses: cssnr/mozilla-addon-update-action@v1
        with:
          url: 'https://github.com/cssnr/link-extractor/releases/download/{version}/link_extractor-firefox.xpi'

Full Example:

name: 'Mozilla Addon Update'

on:
  workflow_dispatch:
  release:
    types: [published]

jobs:
  build:
    name: 'Build'
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
      - name: 'Checkout'
        uses: actions/checkout@v4

      - name: 'Build All'
        run: |-
          npm install
          npm run build

      - name: 'Upload to Release'
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: web-ext-artifacts/*
          tag: ${{ github.ref }}
          overwrite: true
          file_glob: true

  mozilla-update:
    name: 'Mozilla Addon Update'
    runs-on: ubuntu-latest
    timeout-minutes: 5
    needs: [build]
    if: ${{ github.event_name == 'release' }}

    steps:
      - name: 'Checkout'
        uses: actions/checkout@v4

      - name: 'Mozilla Addon Update'
        uses: cssnr/mozilla-addon-update-action@v1
        with:
          url: 'https://github.com/cssnr/link-extractor/releases/download/{version}/link_extractor-firefox.xpi'

      - name: 'Commit files'
        run: |
          git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git config --local user.name "github-actions[bot]"
          git commit -a -m "Update update.json"

      - name: 'Push changes'
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: master

To see this used in a build/publish/update workflow, check out:
https://github.com/cssnr/aviation-tools/blob/master/.github/workflows/build.yaml

Support

For general help or to request a feature see:

If you are experiencing an issue/bug or getting unexpected results you can:

For more information, see the CSSNR SUPPORT.md.

Contributing

Please consider making a donation to support the development of this project and additional open source projects.

Ko-fi

If you would like to submit a PR, please review the CONTRIBUTING.md.

Additionally, you can support other GitHub Actions I have published:

❔ Unpublished Actions

These actions are not published on the Marketplace, but may be useful.


📝 Template Actions

These are basic action templates that I use for creating new actions.

Note: The docker-test-action builds, runs and pushes images to GitHub Container Registry.


For a full list of current projects visit: https://cssnr.github.io/

About

Mozilla Addon Update JSON File Action

Topics

Resources

License

Contributing

Stars

Watchers

Forks