Estoy tratando de cambiar de publicar directamente a npm (que funcionó bien) a usar paquetes de GitHub con un nombre de paquete en el ámbito de la organización.
Cambié el nombre de mi paquete en package.json
, agregué el publishConfig
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},
Y cambié mis pasos de acción para usar NODE_AUTH_TOKEN
lugar de NPM_TOKEN
según los documentos, pero cuando fusiono una rama y activé la acción, aparece la siguiente advertencia y el paquete nunca se publica (aunque la versión Las etiquetas y el registro de cambios se actualizan, por lo que es molesto que no se marque como una ejecución fallida):
✔ success Wrote authentication token string to /home/runner/.npmrc
⚠ warning Error: Failed to replace env in config: ${NPM_TOKEN}
NPM_TOKEN
está configurado en mi repositorio Secretos en GitHub.
Aquí está la configuración de Acción:
name: Publish
on:
push:
branches: [main]
jobs:
release:
runs-on: ubuntu-latest
# this check needs to be in place to prevent a publish loop with auto and github actions
if: "!contains(github.event.head_commit.message, 'ci skip') && !contains(github.event.head_commit.message, 'skip ci')"
steps:
- uses: actions/checkout<strong i="19">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare repository
run: git fetch --unshallow --tags
- name: Use Node.js 12.x
uses: actions/setup-node<strong i="20">@v1</strong>
with:
node-version: 12.x
- name: Cache node modules
uses: actions/cache<strong i="21">@v2</strong>
with:
path: node_modules
key: node-modules-${{ hashFiles('package-lock.json') }}
restore-keys: |
node-modules-${{ hashFiles('package-lock.json') }}
- name: Create release
env
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm ci
npm run build
npm run release
Hay instrucciones adicionales para publicar en el registro de paquetes de GitHub.
Necesita usar su token de GitHub para publicar, ya que ya no publicará en NPM
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Aquí hay un repositorio de ejemplo donde está funcionando.
@hipstersmoothie Muchas gracias por la ayuda. Veo que los documentos se han actualizado desde que configuré originalmente la Acción, pero parece que todavía no incluyen todos los pasos. También tuve que agregar estas líneas a la configuración de mi nodo (notado en su repositorio de demostración):
with:
node-version: 14.x
registry-url: 'https://npm.pkg.github.com'
scope: '<strong i="7">@whiteorg</strong>'
También seguía viendo el mensaje de advertencia NPM_TOKEN. Volver a agregarlo como un secreto del entorno parece haber solucionado eso, es decir.
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Finalmente, con toda esa configuración, pude fusionar un PR y hacer que Auto hiciera lo suyo, lanzando un nuevo paquete y actualizando la versión / registro de cambios 🎉
Sin embargo , había desactivado la protección de rama mientras jugaba; volver a habilitarlo provocó un nuevo error en el que cada vez que Auto intentaba confirmar las actualizaciones de la versión, fallaba. He solucionado eso agregando un nuevo token personal de GitHub y haciendo referencia a eso como un secreto, en lugar del GITHUB_SECRET
predeterminado, así:
- uses: actions/checkout<strong i="17">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GH_ADMIN_TOKEN }}
No parece la mejor solución, así que si alguien conoce una mejor, se la agradecería. Alternativamente, creo que los documentos pueden necesitar una actualización aquí: https://intuit.github.io/auto/docs/build-platforms/github-actions#running -with-branch-protection
Hice un PR para mejorar esos documentos. ¿Le importaría revisar el n. ° 1828?
Revisado, un par de pequeñas sugerencias pero todo se ve bien ☺ Gracias de nuevo por toda su ayuda
: rocket: El problema se publicó en v10.16.8
: rocket: