release: публикация npm через NODE_AUTH_TOKEN (Gitea не выдаёт OIDC) (#4)
Release / Release (push) Successful in 9m23s
Release / Build & push Docker image (push) Has been skipped

Хотфикс release.yml: NPM auth через NODE_AUTH_TOKEN=NPM_TOKEN, снят provenance и id-token: write — Gitea Actions не выдаёт OIDC id-token, поэтому trusted publishing/provenance работать не могут.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit was merged in pull request #4.
This commit is contained in:
2026-05-28 05:56:17 +00:00
parent 677dc35bde
commit 16bd87cca1
+9 -9
View File
@@ -10,12 +10,13 @@ name: Release
# Если версия не менялась — workflow no-op (без ошибки).
#
# Требуемые secrets в настройках репозитория:
# NPM_TOKEN — npm access token с правами publish на @coopenomics/*
# (Gitea Actions не выдаёт OIDC id-token, поэтому npm
# trusted publishing/provenance здесь недоступны —
# используем классический auth через NODE_AUTH_TOKEN)
# DOCKERHUB_USERNAME — Docker Hub логин с доступом к организации dicoop
# DOCKERHUB_TOKEN — PAT с правами Read,Write из hub.docker.com/settings/security
# GITHUB_TOKEN — выдаётся автоматически GitHub Actions
#
# npm publish работает через trusted publishing (OIDC) — токен не нужен:
# настроен на стороне npm для @coopenomics/parser2 под этот workflow.
on:
push:
@@ -27,7 +28,6 @@ concurrency:
permissions:
contents: write # tag + GitHub Release
id-token: write # npm trusted publishing (OIDC) + sigstore provenance
jobs:
release:
@@ -71,15 +71,15 @@ jobs:
pnpm --filter @coopenomics/coopos-ship-reader build
pnpm --filter @coopenomics/parser2 build
# npm trusted publishing: OIDC через id-token: write, без NPM_TOKEN.
# Настроено на стороне npm: @coopenomics/parser2/access → Trusted Publisher
# → GitHub Actions (repo=coopenomics/parser2, workflow=release.yml).
# Provenance=true — sigstore подпишет каждый publish.
# Auth через NODE_AUTH_TOKEN: actions/setup-node по registry-url прописал
# //registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN} в ~/.npmrc, npm/lerna
# читают токен из env. Provenance не включаем — требует OIDC id-token,
# которого Gitea Actions не выдаёт (Trusted Publisher тоже не сработает).
- name: Publish via Lerna (from-package)
if: steps.ver.outputs.released == 'true'
run: pnpm exec lerna publish from-package --yes --no-private
env:
NPM_CONFIG_PROVENANCE: true
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Tag release