Skip to content

Fix script

Fix script #25

Workflow file for this run

name: 'extension'
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
environment:
name: Extension
steps:
- uses: actions/checkout@v4
- name: Setup Node.js environment
uses: actions/setup-node@v4
- name: Install pnpm
run: npm install -g pnpm
- name: Install chrome-webstore-item-property
run: pnpm add -D chrome-web-store-item-property -w
- name: Check version against latest release in Chrome Web Store
id: check_version
uses: actions/github-script@v7
with:
script: |
const fs = require('fs/promises');
const chromeWebstoreItemProperty = require('chrome-web-store-item-property');
const getManifestVersion = async (filePath) => {
const data = await fs.readFile(filePath, 'utf8');
const manifest = JSON.parse(data);
return manifest.version;
};
const checkVersion = async (chromeId) => {
const latestVersion = await chromeWebstoreItemProperty(chromeId);
return latestVersion.version;
};
const fetchVersionInfo = async () => {
try {
const currentVersion = await getManifestVersion('./holo-key-manager-extension/static/manifest.json');
const latestVersion = await checkVersion('${{ vars.CHROME_ID }}');
core.setOutput('abort', currentVersion === latestVersion ? 'true' : 'false');
} catch (error) {
core.setFailed(error.message);
}
};
fetchVersionInfo();
- 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 dependencies
run: pnpm install --no-frozen-lockfile
- name: Build extension
run: pnpm build
working-directory: holo-key-manager-extension
- name: Zip the build
run: |
cd build
zip -r ../build.zip .
cd ..
working-directory: holo-key-manager-extension
- 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: holo-key-manager-extension/build.zip
- name: Edge upload & release
uses: wdzeng/edge-addon@v1
continue-on-error: true
with:
product-id: ${{ vars.EDGE_ID }}
zip-path: holo-key-manager-extension/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 }}
working-directory: holo-key-manager-extension
- name: Build extension
run: pnpm build
working-directory: holo-key-manager-extension
- name: Zip the build
run: |
cd build
zip -r ../buildFF.zip .
cd ..
working-directory: holo-key-manager-extension
- name: Firefox upload & release
uses: cardinalby/webext-buildtools-firefox-addons-action@v1
with:
zipFilePath: holo-key-manager-extension/buildFF.zip
extensionId: ${{ vars.FF_ID }}
jwtIssuer: ${{ secrets.FF_JWT_ISSUER }}
jwtSecret: ${{ secrets.FF_JWT_SECRET }}