name: Build Extension on: push: branches: [main] tags: ["v*"] permissions: contents: write jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Read version from manifest id: version run: echo "version=$(jq -r .version manifest.json)" >> "$GITHUB_OUTPUT" - name: Stage extension files run: | mkdir -p staging/icons dist cp manifest.json content.js content.css bridge.js staging/ cp popup.html popup.js popup.css staging/ cp icons/* staging/icons/ - name: Build ZIP run: cd staging && zip -r ../dist/fluxer-theme-inspector-${{ steps.version.outputs.version }}.zip . - name: Build CRX run: | npm install -g crx3 if [ -n "$CRX_PRIVATE_KEY" ]; then echo "$CRX_PRIVATE_KEY" > key.pem crx3 staging --keyPath key.pem --crxPath dist/fluxer-theme-inspector-${{ steps.version.outputs.version }}.crx rm key.pem else crx3 staging --crxPath dist/fluxer-theme-inspector-${{ steps.version.outputs.version }}.crx fi env: CRX_PRIVATE_KEY: ${{ secrets.CRX_PRIVATE_KEY }} - name: Upload artifacts uses: actions/upload-artifact@v4 with: name: fluxer-theme-inspector-${{ steps.version.outputs.version }} path: dist/ - name: Create release if: startsWith(github.ref, 'refs/tags/v') uses: softprops/action-gh-release@v2 with: files: dist/*