Привет всем, я пытаюсь опубликовать свой пакет NPM в пакетах GitHub, используя этот yaml:
# This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages
name: Node.js Package (GHP)
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- run: npm ci
- run: npm test
publish-gpr:
needs: build
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
registry-url: https://npm.pkg.github.com/
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
Но я получаю эту ошибку, которую я не совсем понимаю, поскольку это шаблон, созданный самим GitHub.
Здесь Вы можете найти мой package.json.
Я также попробовал добавить файл .npmrc, но мой рабочий процесс по-прежнему не работает.
Я очень надеюсь, что вы, ребята, сможете помочь мне с этой проблемой. (Кстати, мой рабочий процесс публикации в NPM работает нормально, но я просто не могу заставить его работать с пакетами GitHub)
Редактировать: Моя учетная запись NPM также связана с GitHub.
@jabaa, я думал, токен аутентификации будет сгенерирован автоматически, как указано docs.github.com/en/actions/security-guides/…
Возможно, проблема связана со средой, которую вы используете, возможно, ответ здесь github.com/npm/npm/issues/3623
IIRC npm publish
завершается с ошибкой, если версия пакета уже есть в реестре. Действие JS-DevTools/npm-publish может обрабатывать такие случаи, не выдавая ошибок:
- name: Push to Github
uses: JS-DevTools/npm-publish@v3
with:
package: 'path/to/package.json'
registry: 'https://npm.pkg.github.com'
token: ${{ github.token }}
access: 'public'
provenance: true
Таким образом, вы можете контролировать, в каких реестрах должен быть опубликован ваш пакет. Я использую это во всех своих рабочих процессах
Отлично, это тоже должно сработать. Проголосовал за.
Аутентификация не работает. Вы настроили токен авторизации?