Skip to content

Commit 9d190c7

Browse files
prepwork
1 parent 5bf5a70 commit 9d190c7

File tree

4 files changed

+56
-6
lines changed

4 files changed

+56
-6
lines changed

.github/workflows/publish.dispatch.yml

+35-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Publish NPM (Dispatch)
1+
name: Publish NPM (Manual)
22

33
on:
44
workflow_dispatch:
@@ -9,7 +9,41 @@ on:
99
description: Release Tag to Publish
1010

1111
jobs:
12+
validate_tag:
13+
uses: actions/github-script@v7
14+
with:
15+
script: |
16+
const tag = '';
17+
18+
let exhausted = false;
19+
let page = 1;
20+
while (!exhausted) {
21+
const releases = octokit.rest.repos.listReleases({
22+
owner: context.repo.owner,
23+
repo: context.repo.repo,
24+
page,
25+
per_page: 100,
26+
});
27+
28+
const matchingRelease = releases.find(r => r.tag_name === tag);
29+
if (matchingRelease) {
30+
core.setOutput('hasRelease', true);
31+
core.setOutput('isPrerelease', release.prerelease);
32+
return;
33+
}
34+
35+
if (releases.length < 100) {
36+
exhausted = true;
37+
} else {
38+
page++
39+
}
40+
}
41+
42+
core.setOutput('hasRelease', false);
43+
core.setOutput('isPrerelease', false);
44+
1245
publish_npm:
46+
needs: validate_tag
1347
uses: ./.github/workflows/publish.reusable.yml
1448
with:
1549
release-tag: ${{ github.event.inputs.release_tag }}

.github/workflows/publish.reusable.yml

+2-3
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,9 @@ jobs:
3030
env:
3131
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3232
RELEASE_TAG: "0.1.0"
33+
PRERELEASE: "true"
3334

34-
- name: DEBUG
35-
run: cat packages/\@pglt/pglt/package.json
36-
35+
# TODO: use latest/nightly tag depending on prerelease
3736
# - name: Publish npm packages as latest
3837
# run: for package in packages/@biomejs/*; do if [ $package != "packages/@biomejs/js-api" ]; then npm publish $package --tag latest --access public --provenance; fi; done
3938
# env:

.github/workflows/publish.trigger.yml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Publish NPM (Automatic)
2+
3+
on:
4+
release:
5+
types: [released, prereleased]
6+
7+
jobs:
8+
publish_npm:
9+
uses: ./.github/workflows/publish.reusable.yml
10+
with:
11+
release-tag: ${{ github.event.release.tag_name }}
12+
is-prerelease: ${{ github.event.release.prerelease }}
13+
secrets: inherit

packages/@pglt/pglt/scripts/generate-packages.mjs

+6-2
Original file line numberDiff line numberDiff line change
@@ -176,11 +176,15 @@ function getOs(platform) {
176176

177177
(async function main() {
178178
const githubToken = process.env.GITHUB_TOKEN;
179-
const releaseTag = process.env.RELEASE_TAG;
180-
179+
let releaseTag = process.env.RELEASE_TAG;
181180
assert(githubToken, "GITHUB_TOKEN not defined!");
182181
assert(releaseTag, "RELEASE_TAG not defined!");
183182

183+
const isPrerelease = process.env.PRERELEASE === "true";
184+
if (isPrerelease) {
185+
releaseTag += "-rc";
186+
}
187+
184188
await downloadSchema(releaseTag, githubToken);
185189
overwriteManifestVersions(releaseTag);
186190

0 commit comments

Comments
 (0)