Π― ΠΏΡΡΠ°ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡΡΡ Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π°ΠΏΡΡΠΌΡΡ Π½Π° npm (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π» Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ) Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² GitHub Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ.
Π― ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΈΠΌΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ° Π² package.json
, Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ publishConfig
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},
Π ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΌΠΎΠΈ ΡΠ°Π³ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ NODE_AUTH_TOKEN
Π²ΠΌΠ΅ΡΡΠΎ NPM_TOKEN
Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡ Π²Π΅ΡΠΊΡ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°Ρ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Ρ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΈ ΠΏΠ°ΠΊΠ΅Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΡΡ (Ρ
ΠΎΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΅Π³ΠΈ ΠΈ ΠΆΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄ΠΎΡΠ°Π΄Π½ΠΎ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠΉ Π·Π°ΠΏΡΡΠΊ):
β success Wrote authentication token string to /home/runner/.npmrc
β warning Error: Failed to replace env in config: ${NPM_TOKEN}
NPM_TOKEN
ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² ΠΌΠΎΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Secrets Π½Π° GitHub.
ΠΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΡ:
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
ΠΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π² ΡΠ΅Π΅ΡΡΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² GitHub.
ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠΊΠ΅Π½ GitHub Π΄Π»Ρ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²Ρ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΡΠ΅ Π² NPM
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΠΏΠΎ, Π³Π΄Π΅ ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
@hipstersmoothie ΠΠΎΠ»ΡΡΠΎΠ΅ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° ΠΏΠΎΠΌΠΎΡΡ. Π― Π²ΠΈΠΆΡ, ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ Π±ΡΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ Ρ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΊΠ°ΠΊ Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΠ» Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π½ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ ΡΠ°Π³ΠΈ. ΠΠ½Π΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Π² ΠΌΠΎΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΡΠ·Π»Π° (Π·Π°ΠΌΠ΅ΡΠ΅Π½ΠΎ Π² Π²Π°ΡΠ΅ΠΌ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ):
with:
node-version: 14.x
registry-url: 'https://npm.pkg.github.com'
scope: '<strong i="7">@whiteorg</strong>'
Π― ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠ΄Π΅Π» ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ NPM_TOKEN. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΠΊΡΠ΅ΡΠ° ΡΡΠ΅Π΄Ρ, ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΡΡΠ°Π½ΠΈΠ»ΠΎ ΡΡΠΎ, Ρ.Π΅.
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΠΈΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ Ρ ΡΠΌΠΎΠ³ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ PR ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Auto, Π²ΡΠΏΡΡΡΠΈΠ² Π½ΠΎΠ²ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² Π²Π΅ΡΡΠΈΡ / ΠΆΡΡΠ½Π°Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ π
ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΠΎΡΠΊΠ»ΡΡΠΈΠ» Π·Π°ΡΠΈΡΡ Π²Π΅ΡΠΎΠΊ, ΠΏΠΎΠΊΠ° Π²ΠΎΠ·ΠΈΠ»ΡΡ; ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π»ΠΎ Π½ΠΎΠ²ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Auto ΠΏΡΡΠ°Π»ΡΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ, ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΠ» ΡΠ±ΠΎΠΉ. Π― ΡΠ°Π±ΠΎΡΠ°Π» Π½Π°Π΄ ΡΡΠΈΠΌ, Π΄ΠΎΠ±Π°Π²Π»ΡΡ Π½ΠΎΠ²ΡΠΉ Π»ΠΈΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½ GitHub ΠΈ ΡΡΡΠ»Π°ΡΡΡ Π½Π° Π½Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π½Π° ΡΠ΅ΠΊΡΠ΅Ρ, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ GITHUB_SECRET
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
- uses: actions/checkout<strong i="17">@v2</strong>
with:
# Needed for branch protection override
token: ${{ secrets.GH_ADMIN_TOKEN }}
ΠΡΠΎ Π½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ Π»ΡΡΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π·Π½Π°Π΅Ρ Π»ΡΡΡΠ΅Π΅, Ρ Π±ΡΠ» Π±Ρ ΠΏΡΠΈΠ·Π½Π°ΡΠ΅Π»Π΅Π½. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ: https://intuit.github.io/auto/docs/build-platforms/github-actions#running -with-branch-protection
Π― ΡΠ΄Π΅Π»Π°Π» ΠΏΠΈΠ°Ρ, ΡΡΠΎΠ±Ρ ΡΠ»ΡΡΡΠΈΡΡ ΡΡΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ. ΠΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ β 1828?
ΠΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ, ΠΏΠ°ΡΠ° Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Π²ΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Ρ ΠΎΡΠΎΡΠΎ βΊ ΠΡΠ΅ ΡΠ°Π· ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°ΡΡ ΠΏΠΎΠΌΠΎΡΡ
: rocket: ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π²ΡΠΏΡΡΠ΅Π½Π° Π² v10.16.8
: rocket: