Skip to content

extension-release

extension-release #42

Workflow file for this run

name: build-and-release
on:
push:
branches:
- main
paths:
- 'chromium/manifest.json'
- 'chromium_mv3/manifest.json'
- 'firefox/manifest.json'
workflow_dispatch:
permissions:
contents: write
jobs:
build-and-release:
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Install tools
run: sudo apt-get install -y zip jq
- name: Extract and define versions
run: |
get_version() { jq -r .version "$1/manifest.json"; }
MV2_VERSION=$(get_version chromium)
MV3_VERSION=$(get_version chromium_mv3)
FF_VERSION=$(get_version firefox)
echo "MV2_VERSION=$MV2_VERSION" >> $GITHUB_ENV
echo "MV3_VERSION=$MV3_VERSION" >> $GITHUB_ENV
echo "FF_VERSION=$FF_VERSION" >> $GITHUB_ENV
RELEASE_VERSION=$(printf "%s\n%s\n%s" "$MV2_VERSION" "$MV3_VERSION" "$FF_VERSION" | sort -V | tail -n 1)
echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV
- name: Package Extensions
run: |
package() {
SRC1="$1"
SRC2="$2"
BUILD_DIR="$3"
ZIP_NAME="$4"
mkdir -p "$BUILD_DIR"
cp -r "$SRC1"/* "$BUILD_DIR/"
[ -n "$SRC2" ] && cp -r "$SRC2"/* "$BUILD_DIR/"
cd "$BUILD_DIR"
zip -r "../$ZIP_NAME" .
cd ..
rm -rf "$BUILD_DIR"
}
package "chromium" "" "build_mv2" "chromium-${MV2_VERSION}.zip"
package "chromium" "chromium_mv3" "build_mv3" "chromium_mv3-${MV3_VERSION}.zip"
package "chromium" "firefox" "build_firefox" "firefox-${FF_VERSION}.zip"
- name: Create GitHub Release
run: |
gh release create "${RELEASE_VERSION}" \
"chromium-${MV2_VERSION}.zip" \
"chromium_mv3-${MV3_VERSION}.zip" \
"firefox-${FF_VERSION}.zip" \
--title "${RELEASE_VERSION}" \
--notes "Auto-packaged extensions for version v${RELEASE_VERSION}"