Skip to content

Commit a393ac6

Browse files
authored
chore: enable auto publish (#78)
1 parent 3caba0e commit a393ac6

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

.github/workflows/release-integration.yml

+16-8
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,24 @@ on:
1515
required: true
1616
type: string
1717
description: 'A json array of releases. Required fields: publish: tagName, publishTag. publish check: pkgName, version'
18+
secrets:
19+
PUBLISH_TOKEN:
20+
required: true
1821

1922
jobs:
2023
publish:
21-
name: Check Publish
24+
name: Publish
2225
runs-on: ubuntu-latest
2326
defaults:
2427
run:
2528
shell: bash
29+
permissions:
30+
id-token: write
2631
steps:
2732
- name: Checkout
2833
uses: actions/checkout@v3
34+
with:
35+
ref: ${{ fromJSON(inputs.releases)[0].tagName }}
2936
- name: Setup Git User
3037
run: |
3138
git config --global user.email "npm-cli+bot@github.com"
@@ -42,26 +49,27 @@ jobs:
4249
node: ${{ steps.node.outputs.node-version }}
4350
- name: Install Dependencies
4451
run: npm i --ignore-scripts --no-audit --no-fund
45-
- name: Check If Published
52+
- name: Set npm authToken
53+
run: npm config set '//registry.npmjs.org/:_authToken'=\${PUBLISH_TOKEN}
54+
- name: Publish
55+
env:
56+
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
4657
run: |
4758
EXIT_CODE=0
4859
4960
function each_release {
50-
if npm view "$@" --loglevel=error > /dev/null; then
61+
if npm publish --provenance --tag="$1"; then
5162
echo 0
5263
else
5364
echo 1
5465
fi
5566
}
5667
5768
for release in $(echo '${{ inputs.releases }}' | jq -r '.[] | @base64'); do
58-
SPEC="$(echo "$release" | base64 --decode | jq -r .pkgName)@$(echo "$release" | base64 --decode | jq -r .version)"
59-
STATUS=$(each_release "$SPEC")
69+
PUBLISH_TAG=$(echo "$release" | base64 --decode | jq -r .publishTag)
70+
STATUS=$(each_release "$PUBLISH_TAG")
6071
if [[ "$STATUS" -eq 1 ]]; then
6172
EXIT_CODE=$STATUS
62-
echo "$SPEC ERROR"
63-
else
64-
echo "$SPEC OK"
6573
fi
6674
done
6775

.github/workflows/release.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ jobs:
131131
id: comment-text
132132
env:
133133
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
134-
run: npm exec --offline -- template-oss-release-manager --pr="${{ needs.release.outputs.pr-number }}" --backport="" --defaultTag="latest"
134+
run: npm exec --offline -- template-oss-release-manager --pr="${{ needs.release.outputs.pr-number }}" --backport="" --defaultTag="latest" --publish
135135
- name: Append Release Manager Comment
136136
uses: peter-evans/create-or-update-comment@v3
137137
with:
@@ -243,6 +243,10 @@ jobs:
243243
name: Release Integration
244244
if: needs.release.outputs.releases
245245
uses: ./.github/workflows/release-integration.yml
246+
permissions:
247+
id-token: write
248+
secrets:
249+
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
246250
with:
247251
releases: ${{ needs.release.outputs.releases }}
248252

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@
3333
},
3434
"templateOSS": {
3535
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
36-
"version": "4.21.3"
36+
"version": "4.21.3",
37+
"publish": true
3738
},
3839
"tap": {
3940
"nyc-arg": [

0 commit comments

Comments
 (0)