Saya mencoba beralih dari penerbitan langsung ke npm (yang berfungsi dengan baik) ke menggunakan Paket GitHub dengan nama paket cakupan organisasi.
Saya telah mengubah nama paket saya di package.json
, menambahkan publishConfig
misalnya
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},
Dan mengubah langkah Tindakan saya untuk menggunakan NODE_AUTH_TOKEN
alih-alih NPM_TOKEN
sesuai dengan dokumen, tetapi ketika saya menggabungkan cabang dan memicu tindakan saya mendapatkan peringatan berikut dan paket tidak pernah diterbitkan (meskipun versi tag dan changelog diperbarui, jadi yang mengganggu tidak ditandai sebagai proses yang gagal):
✔ success Wrote authentication token string to /home/runner/.npmrc
⚠ warning Error: Failed to replace env in config: ${NPM_TOKEN}
NPM_TOKEN
diatur dalam Rahasia repositori saya di GitHub.
Inilah pengaturan Tindakan:
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
Ada instruksi tambahan untuk memublikasikan ke registri paket GitHub.
Anda perlu menggunakan token GitHub Anda untuk memublikasikan karena Anda tidak lagi memublikasikan ke NPM
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Berikut adalah contoh repo tempat ia bekerja.
@hipstersmoothie Banyak terima kasih atas bantuannya. Saya melihat dokumen telah diperbarui sejak saya awalnya mengatur Action, tetapi sepertinya mereka masih belum menyertakan semua langkah. Saya harus menambahkan baris-baris ini ke pengaturan Node saya juga (diperhatikan di repo demo Anda):
with:
node-version: 14.x
registry-url: 'https://npm.pkg.github.com'
scope: '<strong i="7">@whiteorg</strong>'
Saya juga masih melihat pesan peringatan NPM_TOKEN. Menambahkannya kembali sebagai rahasia lingkungan tampaknya telah memperbaikinya yaitu
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Akhirnya, dengan semua pengaturan itu, saya dapat menggabungkan PR dan membuat Auto melakukannya, merilis paket baru dan memperbarui versi/changelog
Namun saya telah menonaktifkan perlindungan cabang saat bermain-main; mengaktifkannya kembali menyebabkan kesalahan baru di mana setiap kali Auto mencoba melakukan pembaruan versi, itu akan gagal. Saya telah mengatasinya dengan menambahkan token GitHub pribadi baru dan merujuknya sebagai rahasia, alih-alih default GITHUB_SECRET
, seperti:
- uses: actions/checkout<strong i="17">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GH_ADMIN_TOKEN }}
Sepertinya bukan solusi terbaik, jadi jika ada yang tahu solusi yang lebih baik, saya akan menghargainya. Atau, saya pikir dokumen mungkin perlu diperbarui di sini: https://intuit.github.io/auto/docs/build-platforms/github-actions#running -with-branch-protection
Saya telah membuat PR untuk meningkatkan dokumen itu. Maukah Anda meninjau #1828?
Ditinjau, beberapa saran kecil tetapi semuanya terlihat bagus Sekali lagi terima kasih atas semua bantuan Anda
:rocket: Masalah dirilis di v10.16.8
:rocket: