Skip to content

Commit 51713db

Browse files
committed
Setup workflows for trusted publishing for v2
1 parent 6856ab2 commit 51713db

2 files changed

Lines changed: 23 additions & 51 deletions

File tree

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,8 @@ jobs:
1818
with:
1919
ref: ${{ github.ref_name }}
2020

21-
- uses: pnpm/action-setup@v4
22-
name: Install pnpm
23-
with:
24-
run_install: false
21+
- name: Install pnpm
22+
uses: pnpm/action-setup@v4
2523

2624
- name: Install Node.js
2725
uses: actions/setup-node@v4
@@ -31,13 +29,10 @@ jobs:
3129
cache: pnpm
3230

3331
- name: Install dependencies
34-
run: pnpm install
32+
run: pnpm install --frozen-lockfile
3533

3634
- name: Build packages
3735
run: pnpm build
3836

3937
- name: Publish
40-
run: pnpm publish-ci
41-
env:
42-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
38+
run: pnpm run publish-ci

‎scripts/publish.js‎

Lines changed: 19 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -29,66 +29,43 @@ const PACKAGES = [
2929
"remix",
3030
];
3131

32-
function getTaggedVersion() {
33-
let output = cp.execSync("git tag --list --points-at HEAD").toString().trim();
34-
return output.replace(/^v/, "").replace(/^remix@/, "");
35-
}
36-
37-
/**
38-
* @param {string} dir
39-
* @param {string} tag
40-
*/
41-
function publish(dir, tag) {
42-
let cmd = `pnpm publish ${dir} --access public --tag ${tag} --no-git-checks`;
43-
console.log("Publishing command:", cmd);
44-
cp.execSync(cmd, { stdio: "inherit" });
45-
}
46-
47-
/**
48-
* @param {string} dir
49-
* @param {string} tag
50-
*/
51-
function validateVersion(dir, tag) {
52-
let file = path.join(dir, "package.json");
53-
let json = JSON.parse(fs.readFileSync(file, "utf8"));
54-
if (json.version !== tag) {
55-
throw new Error(
56-
`Package ${dir} is on version ${json.version}, but should be on ${tag}`
57-
);
58-
}
59-
}
60-
6132
async function run() {
6233
ensureCleanWorkingDirectory();
6334

6435
// Make sure there's a current tag
65-
let taggedVersion = getTaggedVersion();
36+
let output = cp.execSync("git tag --list --points-at HEAD").toString().trim();
37+
let taggedVersion = output.replace(/^v/, "").replace(/^remix@/, "");
6638

6739
if (taggedVersion === "") {
68-
console.error("Missing release version. Run the version script first.");
69-
process.exit(1);
40+
throw new Error("Missing release version. Run the version script first.");
7041
}
7142

7243
console.log("Found tagged version:", taggedVersion);
7344

7445
let prerelease = semver.prerelease(taggedVersion);
75-
let prereleaseTag = prerelease ? String(prerelease[0]) : undefined;
76-
let tag = prereleaseTag
77-
? prereleaseTag.includes("nightly")
78-
? "nightly"
79-
: prereleaseTag.includes("experimental")
80-
? "experimental"
81-
: prereleaseTag
82-
: "latest";
46+
if (prerelease) {
47+
throw new Error("Prereleases not supported for v2 publishes");
48+
}
8349

8450
// Validate all packages
8551
for (let name of PACKAGES) {
86-
validateVersion(path.join(packageDir, name), taggedVersion);
52+
let file = path.join(packageDir, name, "package.json");
53+
let json = JSON.parse(fs.readFileSync(file, "utf8"));
54+
if (json.version !== taggedVersion) {
55+
throw new Error(
56+
`Package ${name} is on version ${json.version}, but should be on ${taggedVersion}`
57+
);
58+
}
8759
}
8860

61+
let tag = "v2";
62+
8963
// Publish all packages
9064
for (let name of PACKAGES) {
91-
publish(path.join(packageDir, name), tag);
65+
let dir = path.join(packageDir, name);
66+
let cmd = `pnpm publish ${dir} --access public --tag ${tag} --no-git-checks`;
67+
console.log("Publishing command:", cmd);
68+
cp.execSync(cmd, { stdio: "inherit" });
9269
}
9370
}
9471

0 commit comments

Comments
 (0)