Skip to content

Commit

Permalink
Publish preview builds to public NPM registry (#1873)
Browse files Browse the repository at this point in the history
This changes the publish preview workflow to deploy to the public NPM
registry, instead of the private GitHub registry.
  • Loading branch information
Mrtenz authored Oct 20, 2023
1 parent 6d78d2c commit 495bdd4
Show file tree
Hide file tree
Showing 43 changed files with 94 additions and 82 deletions.
4 changes: 1 addition & 3 deletions .github/workflows/publish-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,11 @@ jobs:
with:
node-version-file: '.nvmrc'
cache: yarn
registry-url: 'https://npm.pkg.github.com'
scope: '@MetaMask'
- run: yarn --immutable
- name: Get commit SHA
id: commit-sha
run: echo "COMMIT_SHA=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
- run: yarn prepare-preview-builds ${{ steps.commit-sha.outputs.COMMIT_SHA }}
- run: yarn prepare-preview-builds @metamask-previews ${{ steps.commit-sha.outputs.COMMIT_SHA }}
- run: yarn build
- name: Publish preview build
run: yarn publish-previews
Expand Down
4 changes: 0 additions & 4 deletions constraints.pro
Original file line number Diff line number Diff line change
Expand Up @@ -171,10 +171,6 @@ gen_enforced_field(WorkspaceCwd, 'module', './dist/esm/index.js') :-
WorkspaceCwd \= '.'.

% Dependencies must have preview scripts.
gen_enforced_field(WorkspaceCwd, 'scripts.prepare-manifest:preview', PrepareManifestScript) :-
\+ workspace_field(WorkspaceCwd, 'private', true),
relative_path(WorkspaceCwd, 'scripts/prepare-preview-manifest.sh', PrepareManifestScript),
WorkspaceCwd \= '.'.
gen_enforced_field(WorkspaceCwd, 'scripts.publish:preview', 'yarn npm publish --tag preview') :-
\+ workspace_field(WorkspaceCwd, 'private', true),
WorkspaceCwd \= '.'.
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
"test": "yarn workspaces foreach --parallel --verbose run test",
"test:browser": "yarn workspaces foreach --verbose run test:browser",
"child-workspace-package-names-as-json": "ts-node scripts/child-workspace-package-names-as-json.ts",
"prepare-preview-builds": "yarn workspaces foreach --parallel run prepare-manifest:preview",
"publish-previews": "yarn workspaces foreach --parallel run publish:preview",
"prepare-preview-builds": "./scripts/prepare-preview-builds.sh",
"publish-previews": "yarn workspaces foreach --parallel --verbose run publish:preview",
"install-chrome": "./scripts/install-chrome.sh",
"get-release-tag": "ts-node --swc scripts/get-release-tag.ts",
"test:e2e": "yarn workspaces foreach --verbose --exclude root run test:e2e"
Expand Down
1 change: 0 additions & 1 deletion packages/create-snap/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
"lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write",
"publish:package": "../../scripts/publish-package.sh",
"lint:ci": "yarn lint",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/bip32/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/bip44/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/browserify-plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
"lint:misc": "prettier --no-error-on-unmatched-pattern --loglevel warn \"**/*.json\" \"**/*.md\" \"**/*.html\" \"!CHANGELOG.md\" \"!snap.manifest.json\" --ignore-path ../../../../.gitignore",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/browserify/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/cronjobs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/dialogs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/errors/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/ethereum-provider/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/ethers-js/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/get-entropy/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/get-file/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/get-locale/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/json-rpc/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/lifecycle-hooks/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/manage-state/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/name-lookup/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/network-access/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/notifications/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/rollup-plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"test": "yarn test:e2e",
"test:e2e": "jest",
"start": "yarn build --watch",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"start": "mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/wasm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
"start": "yarn build:wasm && mm-snap watch",
"test": "yarn test:e2e",
"test:e2e": "jest",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/examples/packages/webpack-plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
"test": "yarn test:e2e",
"test:e2e": "jest",
"start": "webpack watch",
"prepare-manifest:preview": "../../../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-browserify-plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@
"build:cjs": "swc src --out-dir dist/cjs --config-file ../../.swcrc.build.json --config module.type=commonjs",
"build:clean": "yarn clean && yarn build",
"clean": "rimraf '*.tsbuildinfo' 'dist'",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"lint:dependencies": "depcheck"
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-cli/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
"lint:misc": "prettier --no-error-on-unmatched-pattern --loglevel warn \"**/*.json\" \"**/*.md\" \"**/*.html\" \"!CHANGELOG.md\" --ignore-path ../../.gitignore",
"lint": "yarn lint:eslint && yarn lint:misc --check && yarn lint:changelog && yarn lint:dependencies",
"lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"lint:dependencies": "depcheck"
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-controllers/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
"lint": "yarn lint:eslint && yarn lint:misc --check && yarn lint:changelog && yarn lint:dependencies",
"lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write",
"lint:changelog": "../../scripts/validate-changelog.sh @metamask/snaps-controllers",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"lint:dependencies": "depcheck"
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-execution-environments/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
"build:lavamoat": "lavamoat scripts/build.js --policy lavamoat/build-system/policy.json --policyOverride lavamoat/build-system/policy-override.json",
"build:lavamoat:policy": "yarn build:lavamoat --writeAutoPolicy && node scripts/build.js --writeAutoPolicy",
"auto-changelog-init": "auto-changelog init",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"start": "node scripts/start.js",
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-jest/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
"build:cjs": "swc src --out-dir dist/cjs --config-file ../../.swcrc.build.json --config module.type=commonjs",
"build:clean": "yarn clean && yarn build",
"clean": "rimraf '*.tsbuildinfo' 'dist'",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-rollup-plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
"build:cjs": "swc src --out-dir dist/cjs --config-file ../../.swcrc.build.json --config module.type=commonjs",
"build:clean": "yarn clean && yarn build",
"clean": "rimraf '*.tsbuildinfo' 'dist'",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"lint:dependencies": "depcheck"
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-rpc-methods/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
"build:cjs": "swc src --out-dir dist/cjs --config-file ../../.swcrc.build.json --config module.type=commonjs",
"build:clean": "yarn clean && yarn build",
"clean": "rimraf '*.tsbuildinfo' 'dist'",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"lint:dependencies": "depcheck"
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-simulator/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@
"test:watch": "jest --watch",
"clean": "rimraf '*.tsbuildinfo' 'dist'",
"lint:ci": "yarn lint",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:dependencies": "depcheck"
},
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-types/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
"build:cjs": "swc src --out-dir dist/cjs --config-file ../../.swcrc.build.json --config module.type=commonjs",
"build:clean": "yarn clean && yarn build",
"clean": "rimraf '*.tsbuildinfo' 'dist'",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"lint:dependencies": "depcheck"
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
"build:cjs": "swc src --out-dir dist/cjs --config-file ../../.swcrc.build.json --config module.type=commonjs",
"build:clean": "yarn clean && yarn build",
"clean": "rimraf '*.tsbuildinfo' 'dist'",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"lint:dependencies": "depcheck"
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
"build:cjs": "swc src --out-dir dist/cjs --config-file ../../.swcrc.build.json --config module.type=commonjs",
"build:clean": "yarn clean && yarn build",
"clean": "rimraf '*.tsbuildinfo' 'dist'",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"lint:dependencies": "depcheck"
Expand Down
1 change: 0 additions & 1 deletion packages/snaps-webpack-plugin/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
"build:cjs": "swc src --out-dir dist/cjs --config-file ../../.swcrc.build.json --config module.type=commonjs",
"build:clean": "yarn clean && yarn build",
"clean": "rimraf '*.tsbuildinfo' 'dist'",
"prepare-manifest:preview": "../../scripts/prepare-preview-manifest.sh",
"publish:preview": "yarn npm publish --tag preview",
"lint:ci": "yarn lint",
"lint:dependencies": "depcheck"
Expand Down
52 changes: 52 additions & 0 deletions scripts/prepare-preview-builds.jq
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# The name is overwritten, causing the package to get published under a
# different NPM scope than non-preview builds.
.name |= sub("@metamask/"; "\($npm_scope)/") |

# The prerelease version is overwritten, preserving the non-prerelease portion
# of the version. Technically we'd want to bump the non-prerelease portion as
# well if we wanted this to be SemVer-compliant, but it was simpler not to.
# This is just for testing, it doesn't need to strictly follow SemVer.
.version |= split("-")[0] + "-preview.\($hash)" |

# The workspace dependencies are updated to point to the exact preview build
# version, so that Yarn does not try to resolve a different version from the
# registry.

if has("devDependencies") then
.devDependencies |= with_entries(
if .value | startswith("workspace:") then
.key |= sub("@metamask/"; "@metamask-previews/") |
.value |= sub("workspace:\\^"; "workspace:*")
else
.
end
)
else
.
end |

if has("peerDependencies") then
.peerDependencies |= with_entries(
if .value | startswith("workspace:") then
.key |= sub("@metamask/"; "@metamask-previews/") |
.value |= sub("workspace:\\^"; "workspace:*")
else
.
end
)
else
.
end |

if has("dependencies") then
.dependencies |= with_entries(
if .value | startswith("workspace:") then
.key |= sub("@metamask/"; "@metamask-previews/") |
.value |= sub("workspace:\\^"; "workspace:*")
else
.
end
)
else
.
end
Loading

0 comments on commit 495bdd4

Please sign in to comment.