update release workflow #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release Extension | ||
|
Check failure on line 1 in .github/workflows/release.yml
|
||
| on: | ||
| release: | ||
| types: [published] | ||
| jobs: | ||
| build: | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| contents: write | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v4 | ||
| - name: Setup Node | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 20 | ||
| - name: Install dependencies | ||
| working-directory: "Base Extension" | ||
| run: npm ci | ||
| - name: Get Version | ||
| id: version | ||
| run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV | ||
| - name: Build Chrome and Firefox Extensions | ||
| working-directory: "Base Extension" | ||
| run: node scripts/build.mjs | ||
| env: | ||
| NEW_VERSION: ${{ env.VERSION }} | ||
| - name: Install web-ext | ||
| run: npm install -g web-ext | ||
| - name: Lint Firefox Extension | ||
| working-directory: "Base Extension/build/firefox" | ||
| run: web-ext lint | ||
| - name: Create Zip and XPI Archives | ||
| working-directory: "Base Extension/build" | ||
| run: | | ||
| cd chrome | ||
| zip -r ../../chrome-extension-${{ env.VERSION }}.zip * | ||
| cd ../firefox | ||
| zip -r ../../firefox-extension-${{ env.VERSION }}.xpi * | ||
| - name: Upload Chrome Extension to GitHub Release | ||
| uses: Shopify/upload-to-release@v2.0.0 | ||
| with: | ||
| name: chrome-extension-${{ env.VERSION }}.zip | ||
| path: Base Extension/chrome-extension-${{ env.VERSION }}.zip | ||
| repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
| - name: Upload Firefox Extension to GitHub Release | ||
| uses: Shopify/upload-to-release@v2.0.0 | ||
| with: | ||
| name: firefox-extension-${{ env.VERSION }}.xpi | ||
| path: Base Extension/firefox-extension-${{ env.VERSION }}.xpi | ||
| repo-token: ${{ secrets.GITHUB_TOKEN }} | ||
| - name: Upload and Publish to Mozilla Firefox Store | ||
| # Only runs if API keys are set AND the GitHub release is NOT marked as a "Pre-release" (Beta). | ||
| if: secrets.WEB_EXT_API_KEY != '' && secrets.WEB_EXT_API_SECRET != '' && github.event.release.prerelease == false | ||
| working-directory: "Base Extension" | ||
| run: web-ext sign --source-dir ./build/firefox --channel listed | ||
| env: | ||
| WEB_EXT_API_KEY: ${{ secrets.WEB_EXT_API_KEY }} | ||
| WEB_EXT_API_SECRET: ${{ secrets.WEB_EXT_API_SECRET }} | ||
| - name: Upload and Publish to Chrome Web Store | ||
| # Only runs if API credentials are set AND the GitHub release is NOT marked as a "Pre-release" (Beta). | ||
| if: secrets.CHROME_CLIENT_ID != '' && secrets.CHROME_CLIENT_SECRET != '' && secrets.CHROME_REFRESH_TOKEN != '' && secrets.CHROME_EXTENSION_ID != '' && github.event.release.prerelease == false | ||
| working-directory: "Base Extension" | ||
| run: npx chrome-webstore-upload-cli upload --source chrome-extension-${{ env.VERSION }}.zip --auto-publish | ||
| env: | ||
| EXTENSION_ID: ${{ secrets.CHROME_EXTENSION_ID }} | ||
| CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }} | ||
| CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }} | ||
| REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }} | ||