Skip to content

Commit

Permalink
ci: add script to prune package.json for release
Browse files Browse the repository at this point in the history
  • Loading branch information
metonym committed Nov 9, 2024
1 parent b54fda9 commit 37c8100
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 8 deletions.
20 changes: 12 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
- "v*"

jobs:
build:
release:
runs-on: ubuntu-latest
permissions:
contents: read
Expand All @@ -15,19 +15,23 @@ jobs:
with:
node-version: "20.x"
registry-url: "https://registry.npmjs.org"
- name: Build
run: |
npm install
npm run build:docs & npm run build:lib

- name: Install dependencies
run: npm install

- name: Build docs and library
run: npm run build:docs & npm run build:lib

- name: Prune package.json
run: node scripts/build-package.js

- name: Publish package (stable)
if: ${{ ! contains(github.ref, '-next') }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}

# Currently, only npm supports publishing packages with provenance
# https://docs.npmjs.com/generating-provenance-statements
run: |
npm publish --provenance --access public
- name: Publish package (next)
if: ${{ contains(github.ref, '-next') }}
env:
Expand Down
26 changes: 26 additions & 0 deletions scripts/build-package.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
const fs = require("node:fs");
const path = require("node:path");

const packagePath = path.join(process.cwd(), "package.json");
const package = JSON.parse(fs.readFileSync(packagePath, "utf8"));

const keys_to_remove = ["prettier", "standard-version", "devDependencies"];
const scripts_to_keep = ["postinstall"];

for (const key of keys_to_remove) {
delete package[key];
}

if (package.scripts) {
const preserved_scripts = {};

for (const script of scripts_to_keep) {
if (package.scripts[script]) {
preserved_scripts[script] = package.scripts[script];
}
}

package.scripts = preserved_scripts;
}

fs.writeFileSync(packagePath, JSON.stringify(package, null, 2) + "\n");

0 comments on commit 37c8100

Please sign in to comment.