Skip to content

GitLabCI에서 npm 배포 방법

NPM Deploy

npm 패키를 CI에서 배포하고 싶다면 다음의 순서대로 하면 된다.

  1. package.json의 privatefalse로 전환.
  2. npm 패키지의 스코프를 그룹명으로 바꾼다.
  3. .npmrc파일이 다음과 같은 내용이 되도록 한다:

@scope:registry=https://your_domain_name/api/v4/projects/your_project_id/packages/npm/ //your_domain_name/api/v4/projects/\({CI_PROJECT_ID}/packages/npm/:_authToken=\){CI_JOB_TOKEN}

</syntaxhighlight>

* your_domain_name에 해당 저장소 도메인을 입력.

#* your_project_id에 프로젝트 ID를 입력.

파이프 라인에서 배포하는 코드

별도의 API 토큰을 발급받지 않아도 된다.

image: node:18

build_and_deploy:
  stage: deploy
  variables:
    REGISTRY: "//${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/"
    TOKEN: "_authToken=${CI_JOB_TOKEN}"
  script:
    - yarn build
    - echo "@serverid-steel:registry=https:${REGISTRY}" > .npmrc
    - echo "${REGISTRY}:${TOKEN}" >> .npmrc
    - npm publish

NPM Install

사설 저장소로 등록되어 있는 Gitlab npm package 를 다운받는 방법:

npm 패키지의 스코프가 존재한다면 .npmrc파일에 스코프의 저장소 정보를 추가한다:

@serverid-steel:registry=https://git.yourdomain.com/api/v4/packages/npm/

.yarnrc파일은 다음과 같다:

"@serverid-steel:registry" "https://git.yourdomain.com/api/v4/packages/npm/"

INFORMATION

URL의 마지막에 슬래시(/)가 반드시 존재해야 한다

그리고 GitLab의 "Project Access Tokens"을 read_api 권한만 주고 생성한다. 프로젝트 ID 가 123 이고, 토큰이 6Wo5YPQ1zsCbrTsZ1tgK일 때, 다음과 같이 .npmrc파일에 추가한다:

//git.yourdomain.com/api/v4/projects/123/packages/npm/:_authToken=6Wo5YPQ1zsCbrTsZ1tgK
//git.yourdomain.com/api/v4/packages/npm/:_authToken=6Wo5YPQ1zsCbrTsZ1tgK

그리고 npm install 또는 yarn install 하면 된다.

Yarn 배포 방법

GitLabCI:Yarn#Yarn Deploy항목 참조.

See also