File tree 3 files changed +23
-10
lines changed
3 files changed +23
-10
lines changed Original file line number Diff line number Diff line change 15
15
required : true
16
16
type : string
17
17
description : ' A json array of releases. Required fields: publish: tagName, publishTag. publish check: pkgName, version'
18
+ secrets :
19
+ PUBLISH_TOKEN :
20
+ required : true
18
21
19
22
jobs :
20
23
publish :
21
- name : Check Publish
24
+ name : Publish
22
25
runs-on : ubuntu-latest
23
26
defaults :
24
27
run :
25
28
shell : bash
29
+ permissions :
30
+ id-token : write
26
31
steps :
27
32
- name : Checkout
28
33
uses : actions/checkout@v3
34
+ with :
35
+ ref : ${{ fromJSON(inputs.releases)[0].tagName }}
29
36
- name : Setup Git User
30
37
run : |
31
38
git config --global user.email "npm-cli+bot@github.com"
@@ -42,26 +49,27 @@ jobs:
42
49
node : ${{ steps.node.outputs.node-version }}
43
50
- name : Install Dependencies
44
51
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 }}
46
57
run : |
47
58
EXIT_CODE=0
48
59
49
60
function each_release {
50
- if npm view "$@" --loglevel=error > /dev/null ; then
61
+ if npm publish --provenance --tag="$1" ; then
51
62
echo 0
52
63
else
53
64
echo 1
54
65
fi
55
66
}
56
67
57
68
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 ")
60
71
if [[ "$STATUS" -eq 1 ]]; then
61
72
EXIT_CODE=$STATUS
62
- echo "$SPEC ERROR"
63
- else
64
- echo "$SPEC OK"
65
73
fi
66
74
done
67
75
Original file line number Diff line number Diff line change @@ -131,7 +131,7 @@ jobs:
131
131
id : comment-text
132
132
env :
133
133
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
135
135
- name : Append Release Manager Comment
136
136
uses : peter-evans/create-or-update-comment@v3
137
137
with :
@@ -243,6 +243,10 @@ jobs:
243
243
name : Release Integration
244
244
if : needs.release.outputs.releases
245
245
uses : ./.github/workflows/release-integration.yml
246
+ permissions :
247
+ id-token : write
248
+ secrets :
249
+ PUBLISH_TOKEN : ${{ secrets.PUBLISH_TOKEN }}
246
250
with :
247
251
releases : ${{ needs.release.outputs.releases }}
248
252
Original file line number Diff line number Diff line change 33
33
},
34
34
"templateOSS" : {
35
35
"//@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
37
38
},
38
39
"tap" : {
39
40
"nyc-arg" : [
You can’t perform that action at this time.
0 commit comments