diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7da4ca2..3d0bf5b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,13 +38,7 @@ jobs: - name: Run lint run: npm run lint - - name: Run build - run: npm run build - - - name: Package Chrome Web Store zip - run: cd dist && zip -r ../algorithmhub-webstore.zip . - - name: Create release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npx -p semantic-release@25 -p @semantic-release/commit-analyzer@13 -p @semantic-release/release-notes-generator@14 -p @semantic-release/github@12 semantic-release + run: npx -p semantic-release@25 -p @semantic-release/commit-analyzer@13 -p @semantic-release/release-notes-generator@14 -p @semantic-release/exec@7 -p @semantic-release/github@12 semantic-release diff --git a/release.config.mjs b/release.config.mjs index d879b55..f4643d0 100644 --- a/release.config.mjs +++ b/release.config.mjs @@ -4,6 +4,13 @@ export default { plugins: [ "@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator", + [ + "@semantic-release/exec", + { + prepareCmd: + "node scripts/set-release-version.mjs ${nextRelease.version} && npm run build && cd dist && zip -r ../algorithmhub-webstore.zip .", + }, + ], [ "@semantic-release/github", { diff --git a/scripts/set-release-version.mjs b/scripts/set-release-version.mjs new file mode 100644 index 0000000..0079272 --- /dev/null +++ b/scripts/set-release-version.mjs @@ -0,0 +1,19 @@ +import { readFile, writeFile } from "node:fs/promises"; + +const version = process.argv[2]; + +if (!version) { + throw new Error("Missing release version."); +} + +async function updateJsonFile(path) { + const content = await readFile(path, "utf8"); + const json = JSON.parse(content); + json.version = version; + await writeFile(path, `${JSON.stringify(json, null, 2)}\n`); +} + +await Promise.all([ + updateJsonFile("manifest.json"), + updateJsonFile("package.json"), +]);