The action allows you to build and sign your Web Extension for offline distribution. Read more details at Alternative Extension Distribution Options.
Based on ChromeCrxBuilder package.
Path to zip file with extension (relative to repository)
Path to save result crx file (relative to repository)
Contents of private key used to sign crx file. Save it to Secrets!
You can generate PEM key pair using ssh-keygen -t rsa -m PEM
command.
Path to save update.xml file (relative to repository) for extensions hosted not on Chrome Web Store.
This xml is used as response at url, specified in manifest's update_url
key file.
If this input is specified, set the following inputs:
URL to the .crx file for clients (will be added to generated XML)
App Id to use in update.xml file. Generated from private key by default.
The absolute path to built crx file
The absolute path to built update.xml file
Use webext-buildtools-pack-extension-dir-action
to pack your extension directory and provide zipFilePath
input (see example).
steps:
# pack zip and read manifest, can be reused in the following steps
- id: packExtensionDir
uses: cardinalby/webext-buildtools-pack-extension-dir-action@v1
with:
extensionDir: 'extension'
zipFilePath: 'build/extension.zip'
- uses: cardinalby/webext-buildtools-chrome-crx-action@v2
with:
# zip file made at the packExtensionDir step
zipFilePath: 'build/extension.zip'
crxFilePath: 'build/extension.crx'
privateKey: ${{ secrets.CHROME_CRX_PRIVATE_KEY }}
# The following is optional if you need update.xml file
updateXmlPath: 'build/update.xml'
updateXmlCodebaseUrl: 'https://server.com/extension.crx'
If you are interested in the building the entire deployment workflow for WebExtension, you can read this article.