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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tags Test Quality Gate Status GitHub Release Version GitHub Last Commit GitHub Top Language GitHub Org Stars Discord

Mozilla Addon Update Action

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

Inputs

input required default description
url Yes - Update URL with {version} in the string.
update No update.json Update JSON File Location
manifest No manifest.json Manifest File Location *
version No - Override Version from manifest *
addon_id No - 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 [email protected] is your Addon ID:

{
    "addons": {
        "[email protected]": {
            "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: [email protected]

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:

Contributing

Currently, the best way to contribute to this project is to star this project on GitHub.

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

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