Merge branch 'dev' into noxtton-main #22
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: Build Browser Extension | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - dev | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| runs-on: macos-latest | |
| outputs: | |
| VERSION: ${{ steps.meta.outputs.VERSION }} | |
| TAG: ${{ steps.meta.outputs.TAG }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Read & validate version | |
| id: meta | |
| run: | | |
| set -euo pipefail | |
| VERSION=$(jq -r '.version' package.json) | |
| echo "VERSION=$VERSION" | |
| if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
| echo "❌ Error: package.json version ('$VERSION') is not semantic versioning (MAJOR.MINOR.PATCH)." | |
| exit 1 | |
| fi | |
| TAG="v$VERSION" | |
| echo "TAG=$TAG" | |
| echo "VERSION=$VERSION" >> "$GITHUB_OUTPUT" | |
| echo "TAG=$TAG" >> "$GITHUB_OUTPUT" | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| registry-url: https://npm.pkg.github.com | |
| scope: '@tetherto' | |
| - name: Install worker dependencies | |
| run: | | |
| git config --global url."https://github.com/".insteadOf git@github.com: | |
| git config --global url."https://".insteadOf ssh:// | |
| git config --global url."https://${{ secrets.PAT_TOKEN }}:x-oauth-basic@github.com/".insteadOf "https://github.com/" | |
| npm install --install-links --legacy-peer-deps | |
| env: | |
| NODE_AUTH_TOKEN: ${{ secrets.PAT_TOKEN }} | |
| - name: Compile i18n catalogs (Lingui) | |
| run: npm run lingui:compile | |
| - name: Build extension (Vite) | |
| run: npm run build | |
| env: | |
| VITE_SLACK_WEBHOOK_URL_PATH: ${{ secrets.SLACK_WEBHOOK_URL_PATH }} | |
| VITE_GOOGLE_FORM_KEY: ${{ secrets.GOOGLE_FORM_KEY }} | |
| VITE_GOOGLE_FORM_MAPPING_TIMESTAMP: ${{ secrets.GOOGLE_FORM_MAPPING_TIMESTAMP }} | |
| VITE_GOOGLE_FORM_MAPPING_TOPIC: ${{ secrets.GOOGLE_FORM_MAPPING_TOPIC }} | |
| VITE_GOOGLE_FORM_MAPPING_APP: ${{ secrets.GOOGLE_FORM_MAPPING_APP }} | |
| VITE_GOOGLE_FORM_MAPPING_OPERATING_SYSTEM: ${{ secrets.GOOGLE_FORM_MAPPING_OPERATING_SYSTEM }} | |
| VITE_GOOGLE_FORM_MAPPING_DEVICE_MODEL: ${{ secrets.GOOGLE_FORM_MAPPING_DEVICE_MODEL }} | |
| VITE_GOOGLE_FORM_MAPPING_MESSAGE: ${{ secrets.GOOGLE_FORM_MAPPING_MESSAGE }} | |
| VITE_GOOGLE_FORM_MAPPING_APP_VERSION: ${{ secrets.GOOGLE_FORM_MAPPING_APP_VERSION }} | |
| VITE_TEST_SLACK_WEBHOOK_URL_PATH: ${{ secrets.TEST_SLACK_WEBHOOK_URL_PATH }} | |
| VITE_TEST_GOOGLE_FORM_KEY: ${{ secrets.TEST_GOOGLE_FORM_KEY }} | |
| VITE_TEST_GOOGLE_FORM_MAPPING_TIMESTAMP: ${{ secrets.TEST_GOOGLE_FORM_MAPPING_TIMESTAMP }} | |
| VITE_TEST_GOOGLE_FORM_MAPPING_TOPIC: ${{ secrets.TEST_GOOGLE_FORM_MAPPING_TOPIC }} | |
| VITE_TEST_GOOGLE_FORM_MAPPING_APP: ${{ secrets.TEST_GOOGLE_FORM_MAPPING_APP }} | |
| VITE_TEST_GOOGLE_FORM_MAPPING_OPERATING_SYSTEM: ${{ secrets.TEST_GOOGLE_FORM_MAPPING_OPERATING_SYSTEM }} | |
| VITE_TEST_GOOGLE_FORM_MAPPING_DEVICE_MODEL: ${{ secrets.TEST_GOOGLE_FORM_MAPPING_DEVICE_MODEL }} | |
| VITE_TEST_GOOGLE_FORM_MAPPING_MESSAGE: ${{ secrets.TEST_GOOGLE_FORM_MAPPING_MESSAGE }} | |
| VITE_TEST_GOOGLE_FORM_MAPPING_APP_VERSION: ${{ secrets.TEST_GOOGLE_FORM_MAPPING_APP_VERSION }} | |
| - name: Package Chrome ZIP | |
| run: | | |
| set -euo pipefail | |
| cd dist | |
| zip -r "../PearPass-Browser-${{ steps.meta.outputs.TAG }}.zip" . | |
| - name: Upload artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: PearPass-Browser-${{ steps.meta.outputs.TAG }}.zip | |
| path: PearPass-Browser-${{ steps.meta.outputs.TAG }}.zip | |
| release: | |
| runs-on: macos-latest | |
| needs: [build] | |
| if: ${{ github.ref == 'refs/heads/main' }} | |
| steps: | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v5 | |
| with: | |
| path: artifacts/ | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ needs.build.outputs.TAG }} | |
| name: PearPass-Browser-${{ needs.build.outputs.TAG }} | |
| draft: false | |
| generate_release_notes: true | |
| files: artifacts/**/*.zip |