Ich versuche, von der direkten Veröffentlichung zu npm (was gut funktionierte) zu wechseln, um GitHub-Pakete mit einem organisationsbezogenen Paketnamen zu verwenden.
Ich habe meinen Paketnamen in package.json
geändert und die erforderlichen publishConfig
hinzugefügt, zB
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},
Und ich habe meine Aktionsschritte geändert, um NODE_AUTH_TOKEN
anstelle von NPM_TOKEN
gemäß den Dokumenten zu verwenden, aber wenn ich einen Zweig zusammenführe und die Aktion auslöse, erhalte ich die folgende Warnung und das Paket wird nie veröffentlicht (obwohl Version Tags und Changelog werden aktualisiert, so dass es ärgerlicherweise nicht als fehlgeschlagener Lauf gekennzeichnet wird):
✔ success Wrote authentication token string to /home/runner/.npmrc
⚠ warning Error: Failed to replace env in config: ${NPM_TOKEN}
NPM_TOKEN
ist in meinen Repository-Geheimnissen auf GitHub festgelegt.
Hier ist das Aktions-Setup:
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
Es gibt zusätzliche Anweisungen zum Veröffentlichen in der GitHub-Paketregistrierung.
Sie müssen Ihr GitHub-Token zum Veröffentlichen verwenden, da Sie nicht mehr in NPM veröffentlichen
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Hier ist ein Beispiel-Repository, in dem es funktioniert.
@hipstersmoothie Vielen Dank für die Hilfe. Ich sehe, dass die Dokumente aktualisiert wurden, seit ich die Aktion ursprünglich eingerichtet habe, aber anscheinend enthalten sie immer noch nicht alle Schritte. Ich musste diese Zeilen auch zu meinem Node-Setup hinzufügen (in Ihrem Demo-Repo bemerkt):
with:
node-version: 14.x
registry-url: 'https://npm.pkg.github.com'
scope: '<strong i="7">@whiteorg</strong>'
Ich sah auch immer noch die NPM_TOKEN-Warnmeldung. Das erneute Hinzufügen als Umgebungsgeheimnis scheint dies behoben zu haben, d
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Schließlich konnte ich mit all dem Setup eine PR zusammenführen und Auto tun lassen, ein neues Paket veröffentlichen und die Version / das Änderungsprotokoll aktualisieren 🎉
Allerdings hatte ich beim Herumfummeln den Zweigschutz deaktiviert; Die erneute Aktivierung führte zu einem neuen Fehler, bei dem jedes Mal, wenn Auto versuchte, die Versionsupdates zu übertragen, fehlschlug. Ich habe das umgangen, indem ich ein neues persönliches GitHub-Token hinzugefügt und dieses als Geheimnis anstelle des Standardwerts GITHUB_SECRET
, wie folgt:
- uses: actions/checkout<strong i="17">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GH_ADMIN_TOKEN }}
Scheint nicht die beste Lösung zu sein, also wenn jemand eine bessere kennt würde ich mich freuen. Alternativ denke ich, dass die Dokumente hier möglicherweise aktualisiert werden müssen: https://intuit.github.io/auto/docs/build-platforms/github-actions#running -with-branch-protection
Ich habe eine PR erstellt, um diese Dokumente zu verbessern. Würde es Ihnen etwas ausmachen, #1828 zu rezensieren?
Bewertet, ein paar kleine Vorschläge, aber alles sieht gut aus ☺Nochmals vielen Dank für Ihre Hilfe
:rocket: Ausgabe wurde in v10.16.8
:rocket: