๋ฒ๊ทธ ์ค๋ช
๊ฐ์ธ Artifactory npm ๋ ์ง์คํธ๋ฆฌ์์ ์ข ์์ฑ์ ๊ฐ์ ธ์จ ๋ค์ ์์ฒด ํธ์คํ ๋ฌ๋์ ์๋ GitHub ์์ ์ ํตํด ํจํค์ง๋ฅผ ๋ค์ ๊ฒ์ํ๋ ์์ฒด ํธ์คํ ๋ฌ๋์์ ์คํ๋๋ ์นด๋๋ฆฌ์ ๋ฆด๋ฆฌ์ค์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ค๊ณ ํฉ๋๋ค. ๊ฒ์ ๋จ๊ณ ์์ฒด๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ๋ค์์ด ํ์๋ฉ๋๋ค.
๋ค์์ผ๋ก ๋ ์๋๋ก:
์ด์ ํ์์ ๊ด๋ฆฌํ๋ ๋ฌ๋ ํ๊ฒฝ์ ๋ฐ๋์ ์ก์ธ์คํ ์ ์๋ ๊ฒ์ ์๋์ง๋ง ๋ค์์ ํ์ธํ์ต๋๋ค.
/home/ubuntu/actions-runner/_work/fe-ui/fe-ui
์์ ์คํ๋ฉ๋๋ค..npmrc
ํ์ผ์ด ํ ํฐ ํญ๋ชฉ์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์
๋ฐ์ดํธ๋ ๊ฒ ๊ฐ์ต๋๋ค.//artifactory.internal.livongo.com/artifactory/api/npm/npm-repository/:_authToken=${NPM_TOKEN}
.npmrc
ํ์ผ์ /home/ubuntu/.npmrc
์ฌํํ๊ธฐ ์ํด
์์๋๋ ํ๋
์คํฌ๋ฆฐ์ท
ํ๊ฒฝ ์ ๋ณด:
์ถ๊ฐ ์ปจํ ์คํธ
์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ์ถ์ง๋ง ๋ ์ด์ ํ ๋ง์ด ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ ์ถ๊ฐ ์ธ๋ถ์ ๋ณด๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
legacyAuth๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ๋จผ์ ๊ทธ๊ฒ์ ๋๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ด๋ค.
@hipstersmoothie ๋ ๊ฑฐ์ ์ธ์ฆ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ .npmrc
ํ์ผ์์ _auth = [token]
๋ฅผ ์๋ฏธํฉ๋๊น? ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ ํํ ๋ฌด์์ ์๋ฏธํ๋ฉฐ ์ด๋ป๊ฒ ๋๋์?
devops ๋ด๋น์์ ํจ๊ป ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํด์ผ ํฉ๋๋ค.
์ํฐํฉํธ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ ๋ช ๊ฐ์ง ํ:
npm
ํ๋ฌ๊ทธ์ธ์ setRcToken
๋ false
์ถ๋ ฅ์ canary ๋ช
๋ น์ด _auth
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ด ํ๋๊ทธ๋ .autorc์์ legacyAuth
๊ฐ true๋ก ์ค์ ๋ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ๋ฉ๋๋ค.
๋ฐ๋ผ์ ๋ก์ปฌ์์ ์ํํ ์ ์๋ ๋จ๊ณ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
~/.npmrc
์ฃผ์
ํฉ๋๋ค.setRcToken
๋ฅผ false
์ค์ ํ๋์ง ํ์ธํ์ญ์์ค.@hipstersmoothie ์, ๋ง์์. legacyAuth๊ฐ ์์ผ๋ฉด (์ง๊ธ ์ ์์ ์๋ํ๊ณ ์๊ธฐ ๋๋ฌธ์) ์ ๋ฌผ ์ธ์คํด์ค์์ 403 Forbidden์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ legacyAuth๋ฅผ true๋ก ์ค์ ํ์ต๋๋ค. .npmrc
ํ์ผ์ ์๋ ํ ํฐ ์ธํธ(๋ด ์๋ ๊ฒ์๋ฌผ์์์ ๊ฐ์ด ์ค์ ํ ํฐ์ผ๋ก)๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ์ค์ ํ๋ ค๊ณ ์๋ํ์ง๋ง ์ฌ์ ํ 403์ด ํ์๋ฉ๋๋ค. ์ด๊ฒ์ด ์๋ง๋ ์ฐ๋ฆฌ ์์
์ค์ ์ ํ๊ณ์ผ ์ ์๋ค๋ ๊ฒ์ ์ดํดํ์ง๋ง ๊ทธ๋ฅ ํธ๊ธฐ์ฌ์์, ๋น์ ์ npmrc์ ๋ฌด์์
๋๊น? ์ฐ๋ฆฌ์ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
registry = https://artifactory.internal.livongo.com/artifactory/api/npm/npm-virtual
email = [email protected]
always-auth = true
save-exact = true
๊ทธ๋ฐ ๋ค์ package.json์์:
"publishConfig": {
"registry": "https://artifactory.internal.livongo.com/artifactory/api/npm/npm-repository/"
},
publish ๋ npm ์ค์น์ ๊ฒฝ์ฐ URL์ ๋์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ์บ์ฑ ๋ ์ด์ด์ฉ Artifactory๋ฅผ ํตํด ์ดํด๊ฐ ํ์ํ์ง๋ง Artifactory ์์ฒด์ ๋ํ ์ ๋ฌธ๊ฐ๋ ์๋๋๋ค. ๋ก์ปฌ ์์คํ ์์ Artifactory๋ก ๊ฒ์ํ ๋ ์ด๊ฒ์ด (legacyAuth๋ฅผ ์ฌ์ฉํ์ฌ) ์ธ์ฆ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋๋ก ํ ์ ์์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ผ๋ ๊ฒ์ ๊ธฐ์ตํฉ๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ๋ก์ปฌ ๊ฒ์๋ฅผ ์ฐจ๋จํ๊ณ ์ด๋ฅผ GitHub Actions๋ก ์คํ๋ก๋ํ๋ ค๊ณ ํ์ง๋ง ์ด ์ข๊ฒ๋ ๊ณต์ ์๋ ๊ตฌ์ฑ์์ legacyAuth๋ฅผ ์ ๊ฑฐํ๊ณ ๋ชจ๋ ํจํค์ง์ ๋ฐฐํฌํ๊ธฐ ์ ์ ํด๋น ๋ณ๊ฒฝ ์ฌํญ์ ์นด๋๋ฆฌ์๋ฅผ ๊ฒ์ํ๊ณ ์ถ์์ง๋ง ์์, ์ด์ legacyAuth๊ฐ ๋๋ฝ๋์ด ๊ฒ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ ์ ์์ต๋๋ค. lol.
์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์ค๋์ ์ ํ ๋ฒ ์ค์ ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ์ทจํ๋ ๋จ๊ณ๋ฅผ ์ ๋ฌํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
๋ค์์ npmrc ์ค์ ์ ์ํ ๋ด๋ถ ๋ฌธ์์ ๋๋ค.
์ด๊ฒ ์ธ์๋ ๋ณ๋ก ๋์์ด ๋์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. Artifactory๋ ํ๋ํ๊ธฐ๊ฐ ๋ค์ ์ด๋ ค์ธ ์ ์์ต๋๋ค.
@hipstersmoothie ๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. Artifactory๊ฐ ์๋ํ๋๋ก ํ๋ ๊ฒ์ ๋งค์ฐ ์ณ์ต๋๋ค. ํนํ ์ธ์คํด์ค๋ฅผ ๊ด๋ฆฌํ ์ก์ธ์ค ๊ถํ์ ์ป์ ์ ์๊ณ devops์ ๊ณ์ํด์ ์๋ํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ๋์ฑ ์ด๋ ต์ต๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , ๋๋ ๋น์ ์ ๋์์ ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ ๊ณ์ํด์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ ๋๋ค. ๋๋ ์ด๋ฏธ ๊ทธ ์คํฌ๋ฆฐ์ท์ ํ์๋ ๊ฒ๊ณผ ์ ์ฌํ ์ค์ ์ ๋ชจ๋ฐฉํ๋ ค๊ณ ์๋ํ์ง๋ง(๊ทธ๋ฆฌ๊ณ ๊ฒ์ํ ํ ํ์ธํ๊ธฐ ์ํด ๋ค์ ์๋ํ์ต๋๋ค) ์ ์ฌ์ฉ ์ฌ๋ก์์๋ ์๋ํ์ง ์์์ต๋๋ค. ์๋ง๋ Artifactory์ ์ค์ ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ฅผ ์ํด. ๊ด์ฐฎ์ผ์๋ค๋ฉด ์ด ๋ฌธ์ ๋ฅผ ๊ณ์ ๊ณต๊ฐํ๊ณ ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ฉด ๋ค์ ๋์์์ ๋ซ์ ๊ฒ์ ๋๋ค. ๋๋ ์๋ง๋ ๊ทธ ๊ณผ์ ์ ์ผ๋ถ๋ก auto์ ๋ด๋ถ๋ฅผ ์ดํด๋ณด๊ฒ ๋ ๊ฒ์ด๋ค.
๋ค, ์ ๋ ๊ด์ฐฎ์ต๋๋ค. ์ข์ ์ํฐํฉํธ ์ค์ ๋จ๊ณ๋ฅผ ์๊ฐํด๋ด๋ฉด ๋ฌธ์์๋ ์ถ๊ฐํ ์ ์์ต๋๋ค.
@hipstersmoothie ์ด ์ค์ ๋ณด๊ณ ์์ต๋๋ค.
https://github.com/intuit/auto/blob/v10.21.3/plugins/npm/src/set-npm-token.ts#L37
๋ด ๋ก์ปฌ ์ปดํจํฐ(๋ด๋ถ ์ํฐํฉํธ์ ์ฐ๊ฒฐํ ์ ์์)์ ๊ฒฝ์ฐ isCi
๊ฐ false
์ผ ๋ ๊ฒ์ํ ์ ์์ต๋๋ค. ์์์ ์ฐธ์กฐํ ๋ก์ปฌ node_modules/@auto-it/npm/dist/set-npm-token.js
๋ผ์ธ์ if (false) {
๋ก ๋ณ๊ฒฝํ๋ฉด isCi
์ด true
์ผ ๋์ ๋์ผํ 403 ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
non-ci์ ๋ํด ์ ํํ๊ฑฐ๋ ci์ ๋ํด ์ ํํฉ๋๋ค. setTokenOnCI
์ด(๊ฐ) legacyAuth
๊ณ ๋ คํ์ง ์๊ณ ์๋ ๊ฒ ๊ฐ์๋ฐ ๊ทธ๋์ผ ํฉ๋๊น?
๋ด๊ฐ ๋งํ ๊ณณ์ ๋์น ๊ฒ ๊ฐ์ต๋๋ค.
setRcToken์ false๋ก ์ค์ ํ๋์ง ํ์ธํ์ญ์์ค.
setRcToken
๊ฐ false
์ค์ ๋ ๊ฒฝ์ฐ ํด๋น ์ฝ๋๋ฅผ ๋ชจ๋ ๊ฑด๋๋๋๋ค.
@hipstersmoothie setRcToken
์ false
์ค์ ํ๋ฉด ๋ฐ์์ด ๋งค์ฐ ์ข๊ณ ๋ชจ๋ ๊ฒ์ด ์ ๋ฉ๋๋ค. github ์์
์ ํตํด ์ํฐํฉํธ์ auto
๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ GO์
๋๋ค. ๊ฐ์ฌ!
๋ฌธ์ ๋ฅผ ์ข ๋ฃํ ์ ์์ต๋๋ค. ์ฌ์ฉ์/์ค์ ์ค๋ฅ์ ๋๋ค. ์ง์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@hipstersmoothie ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋์