이 작업은 GitHub Actions 사용자에게 다음 기능을 제공합니다.
선택적으로 요청된 Node.js 버전의 배포판을 다운로드 및 캐싱하고 PATH에 추가
선택적으로 npm/yarn/pnpm 종속성 캐싱
오류 출력을 위한 문제 일치자 등록
GPR 또는 npm에 대한 인증 구성
action.yml 참조
- 용도: actions/setup-node@v4
with:# SemVer 표기법에 사용할 버전의 버전 사양.# lts/*, 최신, nightly 및 canary 빌드와 같은 별칭도 허용합니다.# 예: 12.x, 10.15.1, >=10.15.0, lts/ 수소, 16박, 최신, nodenode-version: ''# 사용할 버전의 Spec이 포함된 파일입니다. 예: package.json, .nvmrc, .node-version, .tool-versions.# node-version 및 node-version-file이 모두 제공된 경우 작업은 node-version의 버전을 사용합니다. node-version-file: ''# 버전 사양을 충족하는 사용 가능한 최신 버전을 # 확인하는 작업을 원하면 이 옵션을 설정하세요.# 이는 Nodejs 버전(12.x, >=10.15.1)에만 영향을 미칩니다. 0, lts/수소). # 기본값: falsecheck-latest: false# 사용할 노드의 대상 아키텍처입니다. 예: x86, x64. 기본적으로 시스템 아키텍처를 사용합니다.# 기본값: ''. 작업은 기본 아키텍처에 따라 시스템 아키텍처를 사용합니다. ''# https://github.com/actions/node-versions에서 노드 배포를 가져오는 데 사용됩니다. # 기본값이 있으므로 일반적으로 사용자가 제공하지 않습니다. # github.com에서 이 작업을 실행할 때는 기본값이면 충분합니다. # GHES에서 실행할 때 속도 제한이 발생하는 경우 github.com에 대한 개인 액세스 토큰을 전달할 수 있습니다.## 필요한 최소한의 권한이 있는 서비스 계정을 사용하는 것이 좋습니다. 또한# 새 PAT를 생성할 때 필요한 최소 범위를 선택하세요.## [암호화된 비밀 생성 및 사용에 대해 자세히 알아보기](https://help.github.com/en/actions/automating-your-workflow-with-github -actions/creating-and-using-encrypted-secrets)## 기본값: ${{ github.server_url == 'https://github.com' && github.token || '' }}token: ''# 기본 디렉터리에 캐싱하기 위한 패키지 관리자를 지정하는 데 사용됩니다. 지원되는 값: npm, Yarn, pnpm.# 패키지 관리자가 사전 설치되어 있어야 합니다.# 기본값: ''cache: ''# 종속 파일의 경로를 지정하는 데 사용됩니다: package-lock.json, Yarn.lock 등 # 기본 키의 대상 파일에서 해시를 생성합니다. 캐시가 지정된 경우에만 작동합니다. # 여러 종속성을 캐싱하기 위해 와일드카드 또는 파일 이름 목록을 지원합니다.# 기본값: ''cache-dependent-path: ''# 인증을 위해 설정할 선택적 레지스트리입니다. 프로젝트 수준 .npmrc 및 .yarnrc 파일에 레지스트리를 설정하고 # env.NODE_AUTH_TOKEN에서 읽을 수 있도록 인증을 설정합니다.# 기본값: ''registry-url: ''# 범위가 지정된 레지스트리에 대해 인증하기 위한 선택적 범위입니다. # GitHub 패키지 레지스트리(https://npm.pkg.github.com/)를 사용할 때 저장소 소유자로 대체됩니다.# 기본값: ''scope: ''# npmrc 파일에 Always-auth 옵션을 설정합니다.# 기본값 : ''항상 인증: ''기초적인:
단계: - 용도: actions/checkout@v4- 용도: actions/setup-node@v4 with:node-version: 18- 실행: npm ci- 실행: npm 테스트
node-version 입력은 선택 사항입니다. 제공되지 않으면 PATH의 노드 버전이 사용됩니다. 그러나 항상 Node.js 버전을 지정하고 시스템 버전에 의존하지 않는 것이 좋습니다.
이 작업은 먼저 로컬 캐시에서 semver 일치를 확인합니다. 캐시에서 특정 버전을 찾을 수 없는 경우 작업은 Node.js 버전을 다운로드하려고 시도합니다. 노드 버전 릴리스에서 LTS 버전을 가져오며, 누락 또는 실패 시 노드 dist에서 직접 다운로드하는 이전 동작으로 돌아갑니다.
GitHub 호스팅 실행기에서 로컬로 캐시된 Node.js 버전에 대한 자세한 내용은 GitHub Actions 실행기 이미지를 확인하세요.
node-version 입력은 Semantic Versioning 사양을 지원합니다. 자세한 예는 semver 패키지 설명서를 참조하세요.
예:
주요 버전: 18 , 20
보다 구체적인 버전: 10.15 , 16.15.1 , 18.4.0
NVM LTS 구문: lts/erbium , lts/fermium , lts/* , lts/-n
최신 릴리스: * 또는 latest / current / node
참고: 다른 값과 마찬가지로 * check-latest 입력에 따라 로컬로 캐시된 최신 Node.js 버전을 가져오거나 actions/node-versions에서 최신 버전을 가져옵니다.
current / latest / node 항상 최신 dist 버전으로 확인됩니다. 그런 다음 해당 버전은 가능한 경우 actions/node-versions에서 다운로드되고 그렇지 않은 경우 Node.js에서 직접 다운로드됩니다. 항상 캐시되지 않으므로 dist에서 다운로드할 때 속도 제한에 도달할 가능성이 있습니다.
보안 및 성능상의 이유로 항상 패키지 관리자의 잠금 파일을 커밋하는 것이 좋습니다. 자세한 내용은 고급 사용 가이드의 "잠금 파일 작업" 섹션을 참조하세요.
이 작업에는 종속성을 캐싱하고 복원하는 기능이 내장되어 있습니다. 전역 패키지 데이터를 캐싱하기 위해 내부적으로 작업/캐시를 사용하지만 구성 설정이 덜 필요합니다. 지원되는 패키지 관리자는 npm , yarn , pnpm (v6.10+)입니다. cache 입력은 선택 사항이며 캐싱은 기본적으로 꺼져 있습니다.
이 작업은 기본적으로 저장소 루트에서 종속성 파일( package-lock.json , npm-shrinkwrap.json 또는 yarn.lock )을 검색하고 해당 해시를 캐시 키의 일부로 사용합니다. 여러 종속성 파일이 사용되거나 다른 하위 디렉터리에 있는 경우 cache-dependency-path 사용하세요.
참고: 이 작업은 node_modules 캐시하지 않습니다.
고급 사용 가이드에서 yarn / pnpm 및 cache-dependency-path 입력에 캐시를 사용하는 예를 참조하세요.
npm 종속성 캐싱:
단계: - 용도: actions/checkout@v4- 용도: actions/setup-node@v4 with:node-version: 20cache: 'npm'- 실행: npm ci- 실행: npm 테스트
단일 저장소에서 npm 종속성 캐싱:
단계: - 용도: actions/checkout@v4- 용도: actions/setup-node@v4 with:node-version: 20cache: 'npm'cache-dependent-path: subdir/package-lock.json- run: npm ci- run: npm 테스트
작업: 빌드:실행: 우분투-최신 전략: 매트릭스:노드: [ 14, 16, 18 ]이름: 노드 ${{ 매트릭스.노드 }} 샘플 단계:
- 용도: actions/checkout@v4 - 이름: Setup nodeuses: actions/setup-node@v4with: node-version: ${{ matrice.node }} - 실행: npm ci - 실행: npm testsetup-node 사용 작업이 활성화된 경우 setup-node GHES가 있는 어플라이언스에 사전 설치되어 제공됩니다. Nodejs 배포판을 동적으로 다운로드할 때 setup-node github.com(어플라이언스 외부)의 actions/node-versions 에서 배포판을 다운로드합니다. actions/node-versions 에 대한 이러한 호출은 인증되지 않은 요청을 통해 이루어지며 IP당 시간당 60개의 요청으로 제한됩니다. 해당 기간 내에 더 많은 요청이 이루어지면 다운로드하는 동안 ##[error]API rate limit exceeded for... 와 같은 속도 제한 오류가 표시되기 시작합니다. 오류가 발생한 후 작업은 공식 사이트에서 직접 버전을 다운로드하려고 시도하지만 속도 제한이 있을 수도 있으므로 토큰을 넣는 것이 좋습니다.
더 높은 속도 제한을 얻으려면 github.com에서 개인 액세스 토큰을 생성하고 이를 작업에 대한 token 입력으로 전달할 수 있습니다.
용도: actions/setup-node@v4with: 토큰: ${{ secrets.GH_DOTCOM_TOKEN }}
노드 버전: 20실행기가 github.com에 액세스할 수 없는 경우 워크플로 실행 중에 요청된 Nodejs 버전은 실행기의 도구 캐시에서 가져와야 합니다. 자세한 내용은 "인터넷 액세스 없이 자체 호스팅 실행기에 도구 캐시 설정"을 참조하세요.
최신 버전 확인
노드 버전 파일 사용
다양한 아키텍처 사용
v8 카나리아 버전 사용
야간 버전 사용
rc 버전 사용
패키지 데이터 캐싱
여러 운영 체제 및 아키텍처 사용
npm을 사용하여 npmjs 및 GPR에 게시
Yarn을 사용하여 npmjs 및 GPR에 게시
비공개 패키지 사용
이 프로젝트의 스크립트와 문서는 MIT 라이선스에 따라 공개됩니다.
기여를 환영합니다! 기여자 가이드 보기
친절하게 대해주세요. 행동 강령 보기