Auto: GitHub-Aktion kann NPM_TOKEN nicht finden

Erstellt am 22. Feb. 2021  ·  6Kommentare  ·  Quelle: intuit/auto

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
question released

Alle 6 Kommentare

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:

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen