J'essaie de passer de la publication directe à npm (ce qui a bien fonctionné) à l'utilisation de packages GitHub avec un nom de package d'organisation.
J'ai changé le nom de mon package en package.json
, j'ai ajouté les publishConfig
nécessaires, par exemple
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},
Et j'ai modifié mes étapes d'action pour utiliser NODE_AUTH_TOKEN
au lieu de NPM_TOKEN
selon la documentation, mais lorsque je fusionne une branche et déclenche l'action, je reçois l'avertissement suivant et le package n'est jamais publié (bien que la version les balises et le journal des modifications sont mis à jour, donc ennuyeux, il n'est pas signalé comme une exécution échouée):
✔ success Wrote authentication token string to /home/runner/.npmrc
⚠ warning Error: Failed to replace env in config: ${NPM_TOKEN}
NPM_TOKEN
est défini dans mes secrets de référentiel sur GitHub.
Voici la configuration de l'action :
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
Il existe des instructions supplémentaires pour la publication dans le registre de packages GitHub.
Vous devez utiliser votre jeton GitHub pour publier puisque vous ne publiez plus sur NPM
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Voici un exemple de dépôt où cela fonctionne.
@hipstersmoothie Merci beaucoup pour votre aide. Je vois que les documents ont été mis à jour depuis la configuration initiale de l'action, mais il semble qu'ils n'incluent toujours pas toutes les étapes. J'ai également dû ajouter ces lignes à ma configuration Node (remarquée dans votre dépôt de démonstration):
with:
node-version: 14.x
registry-url: 'https://npm.pkg.github.com'
scope: '<strong i="7">@whiteorg</strong>'
Je voyais également toujours le message d'avertissement NPM_TOKEN. Le rajouter en tant que secret d'environnement semble avoir corrigé ce problème, c'est-à-dire
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Enfin, avec toute cette configuration, j'ai pu fusionner un PR et faire en sorte qu'Auto fasse son travail, en publiant un nouveau package et en mettant à jour la version/le journal des modifications 🎉
Cependant, j'avais désactivé la protection des branches en bidouillant; sa réactivation provoquait une nouvelle erreur où chaque fois qu'Auto tentait de valider les mises à jour de version, il échouait. J'ai contourné cela en ajoutant un nouveau jeton GitHub personnel et en le référençant en tant que secret, au lieu du GITHUB_SECRET
par défaut, comme ceci :
- uses: actions/checkout<strong i="17">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GH_ADMIN_TOKEN }}
Cela ne semble pas être la meilleure solution, donc si quelqu'un en connaît une meilleure, je l'apprécierais. Alternativement, je pense que les documents peuvent avoir besoin d'être mis à jour ici : https://intuit.github.io/auto/docs/build-platforms/github-actions#running -with-branch-protection
J'ai fait un PR pour améliorer ces documents. Cela vous dérangerait-il d'examiner le n° 1828 ?
Examiné, quelques petites suggestions mais tout a l'air bien Merci encore pour toute votre aide
:rocket: Le numéro est sorti en v10.16.8
:rocket: