Skip to content

Commit a97b42d

Browse files
authored
Merge pull request #69 from MisaelMa/publish/trigger-all
feat(core): publish test
2 parents 4e655ab + f8cefb7 commit a97b42d

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

.github/workflows/publish.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,59 @@ jobs:
4949
- name: Build
5050
run: rush build
5151

52+
- name: Get npm token via OIDC
53+
run: |
54+
echo "Requesting OIDC token from GitHub..."
55+
OIDC_TOKEN=$(curl -sS -H "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
56+
"${ACTIONS_ID_TOKEN_REQUEST_URL}&audience=https://registry.npmjs.org" | jq -r '.value')
57+
58+
if [ -z "$OIDC_TOKEN" ] || [ "$OIDC_TOKEN" = "null" ]; then
59+
echo "::error::Failed to get OIDC token from GitHub"
60+
exit 1
61+
fi
62+
echo "OIDC token obtained successfully"
63+
64+
echo "Exchanging OIDC token for npm token..."
65+
RESPONSE=$(curl -sS -w "\n%{http_code}" -X POST "https://registry.npmjs.org/-/npm/v1/security/oidc/token" \
66+
-H "Content-Type: application/json" \
67+
-d "{\"oidcToken\": \"${OIDC_TOKEN}\"}")
68+
69+
HTTP_CODE=$(echo "$RESPONSE" | tail -1)
70+
BODY=$(echo "$RESPONSE" | sed '$d')
71+
72+
echo "npm OIDC exchange HTTP status: $HTTP_CODE"
73+
74+
if [ "$HTTP_CODE" != "200" ]; then
75+
echo "::error::npm OIDC exchange failed with status $HTTP_CODE"
76+
echo "Response: $BODY"
77+
exit 1
78+
fi
79+
80+
NPM_TOKEN=$(echo "$BODY" | jq -r '.token')
81+
if [ -z "$NPM_TOKEN" ] || [ "$NPM_TOKEN" = "null" ]; then
82+
echo "::error::npm returned empty token"
83+
echo "Response: $BODY"
84+
exit 1
85+
fi
86+
87+
echo "::add-mask::$NPM_TOKEN"
88+
echo "NPM_AUTH_TOKEN=$NPM_TOKEN" >> $GITHUB_ENV
89+
echo "npm token obtained successfully"
90+
91+
- name: Verify npm auth
92+
run: |
93+
echo "=== .npmrc content (masked) ==="
94+
cat ~/.npmrc 2>/dev/null | sed 's/_authToken=.*/_authToken=***/' || echo "No ~/.npmrc"
95+
echo ""
96+
echo "=== NPM_AUTH_TOKEN set? ==="
97+
if [ -n "$NPM_AUTH_TOKEN" ]; then echo "YES (length: ${#NPM_AUTH_TOKEN})"; else echo "NO"; fi
98+
echo ""
99+
echo "=== npm whoami ==="
100+
npm whoami 2>&1 || echo "npm whoami failed - NOT authenticated"
101+
echo ""
102+
echo "=== publish .npmrc ==="
103+
cat common/temp/publish-home/.npmrc 2>/dev/null | sed 's/_authToken=.*/_authToken=***/' || echo "No publish .npmrc yet"
104+
52105
- name: Publish (main)
53106
if: steps.branch.outputs.is_main == 'true'
54107
run: rush publish --publish --target-branch main --include-all --set-access-level=public

0 commit comments

Comments
 (0)