Skip to content

Fix script

Fix script #69

Workflow file for this run

name: 'test'
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
environment:
name: test
steps:
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install node-fetch
run: npm install node-fetch
- name: Check version against latest release in Chrome Web Store
id: check_version
uses: actions/github-script@v6
with:
script: |
import fs from 'fs/promises';
import fetch from 'node-fetch';
const manifest = JSON.parse(await fs.readFile('./static/manifest.json', 'utf8'));
const currentVersion = manifest.version;
const response = await fetch(`https://chrome.google.com/webstore/detail/${{ secrets.CHROME_CLIENT_ID }}?hl=en`);
const text = await response.text();
const match = text.match(/"version": "(\d+\.\d+\.\d+)"/);
const latestVersion = match ? match[1] : null;
if (currentVersion === latestVersion) {
core.setOutput('abort', 'true');
} else {
core.setOutput('abort', 'false');
}
- name: Abort build if version matches
if: steps.check_version.outputs.abort == 'true'
run: |
echo "Version in manifest matches the latest release version in Chrome Web Store. Aborting build."
exit 1
- name: Install pnpm
run: npm install -g pnpm
- name: Install dependencies
run: pnpm install
- name: Build extension
run: pnpm build
- name: Zip the build
run: |
cd build
zip -r ../build.zip .
cd ..
- name: Chrome upload & release
uses: mobilefirstllc/cws-publish@latest
continue-on-error: true
with:
action: publish
client_id: ${{ secrets.CHROME_CLIENT_ID }}
client_secret: ${{ secrets.CHROME_CLIENT_SECRET }}
refresh_token: ${{ secrets.CHROME_REFRESH_TOKEN }}
extension_id: ${{ vars.CHROME_ID }}
zip_file: build.zip
- name: Edge upload & release
uses: wdzeng/[email protected]
continue-on-error: true
with:
product-id: ${{ vars.EDGE_ID }}
zip-path: build.zip
client-id: ${{ secrets.EDGE_CLIENT_ID }}
client-secret: ${{ secrets.EDGE_CLIENT_SECRET }}
access-token-url: ${{ secrets.EDGE_ACCESS_TOKEN_URL }}
- name: Replace manifest
run: pnpm build:replaceForFirefox ${{ vars.FF_ID }}
- name: Build extension
run: pnpm build
- name: Zip the build
run: |
cd build
zip -r ../buildFF.zip .
cd ..
- name: Firefox upload & release
uses: cardinalby/[email protected]
with:
zipFilePath: buildFF.zip
extensionId: ${{ vars.FF_ID }}
jwtIssuer: ${{ secrets.FF_JWT_ISSUER }}
jwtSecret: ${{ secrets.FF_JWT_SECRET }}