@actions/download-artifact
경고
actions/download-artifact@v3은 2024년 11월 30일 에 지원 중단될 예정입니다. 자세히 알아보세요. 마찬가지로 v1/v2도 2024년 6월 30일 에 지원 중단될 예정입니다. v4 아티팩트 작업을 사용하려면 워크플로를 업데이트하세요. 이번 지원 중단은 고객이 사용 중인 기존 GitHub Enterprise Server 버전에 영향을 미치지 않습니다.
워크플로 실행에서 작업 아티팩트를 다운로드합니다. @actions/artifact 패키지로 내부적으로 구동됩니다.
업로드 아티팩트도 참조하세요.
@actions/download-artifact
권한 상실
단일 아티팩트 다운로드
모든 아티팩트 다운로드
여러 개의(필터링된) 아티팩트를 동일한 디렉터리에 다운로드
다른 워크플로 실행 또는 저장소에서 아티팩트 다운로드
입력
출력
개량
주요 변경 사항
v4 - 새로운 기능
용법
예
제한사항
중요한
download-artifact@v4+는 현재 GHES에서 지원되지 않습니다. GHES를 사용하는 경우 v3를 사용해야 합니다.
upload-artifact@v4 및 download-artifact@v4의 릴리스는 Artifacts의 백엔드 아키텍처에 대한 주요 변경 사항입니다. 성능과 행동이 많이 개선되었습니다.
자세한 내용은 @actions/artifact
문서를 참조하세요.
최악의 시나리오에서 다운로드 속도가 90% 이상 향상되어 훨씬 더 빨라졌습니다.
PAT와 함께 제공되면 다른 워크플로 실행 및 저장소에서 아티팩트를 다운로드할 수 있습니다.
자체 호스팅 실행기에서는 추가 방화벽 규칙이 필요할 수 있습니다.
action/upload-artifact@v3
이하에서 생성된 아티팩트 다운로드는 지원되지 않습니다.
주요 변경 사항에 대한 지원은 MIGRATION.md를 참조하세요.
- 사용: actions/download-artifact@v4 with: # 다운로드할 아티팩트의 이름. # 지정하지 않으면 실행에 대한 모든 아티팩트가 다운로드됩니다. # 선택사항. 이름: # 대상 경로. 기본 물결표 확장을 지원합니다. # 선택사항. 기본값은 $GITHUB_WORKSPACE입니다. 경로: # 다운로드해야 하는 아티팩트에 대한 glob 패턴입니다. # 이름이 지정되면 무시됩니다. # 선택사항. 패턴: # 여러 아티팩트가 일치하면 대상 디렉터리의 동작이 변경됩니다. # true인 경우 다운로드된 아티팩트는 path로 지정된 동일한 디렉터리에 있습니다. # false인 경우 다운로드된 아티팩트는 지정된 경로 내의 개별 명명된 디렉터리로 추출됩니다. # 선택사항. 기본값은 'false'입니다. merge-multiple: # GitHub API로 인증하는 데 사용되는 GitHub 토큰입니다. # 이는 다른 저장소나 다른 워크플로 실행에서 아티팩트를 다운로드할 때 필요합니다. # 선택사항. 지정하지 않으면 작업이 현재 저장소에서 아티팩트를 다운로드하고 현재 워크플로가 실행됩니다. github-token: # 저장소 소유자와 저장소 이름은 "/"로 결합됩니다. # github-token이 지정된 경우 이는 아티팩트를 다운로드할 저장소입니다. # 선택사항. 기본값은 ${{ github.repository }} 저장소입니다. # 원하는 다운로드 아티팩트가 업로드된 워크플로 실행의 ID입니다. # github-token이 지정된 경우 이는 아티팩트가 다운로드되는 실행입니다. # 선택사항. 기본값은 ${{ github.run_id }} 실행 ID입니다.
이름 | 설명 | 예 |
---|---|---|
download-path | 아티팩트가 다운로드된 절대 경로 | /tmp/my/download/path |
현재 작업 디렉터리( $GITHUB_WORKSPACE
)에 다운로드합니다.
단계: - 사용: actions/download-artifact@v4 with: name: my-artifact- name: 다운로드한 파일의 표시 구조 실행: ls -R
특정 디렉터리에 다운로드합니다( ~
확장도 지원):
단계: - 사용: actions/download-artifact@v4 with: name: my-artifact path: your/destination/dir- name: 다운로드한 파일의 구조 표시 실행: ls -R your/destination/dir
name
입력 매개변수가 제공되지 않으면 모든 아티팩트가 다운로드됩니다. 다운로드한 아티팩트를 구별하기 위해 기본적으로 아티팩트 이름으로 표시된 디렉터리가 각 개별 아티팩트에 대해 생성됩니다. 이 동작은 merge-multiple
입력 매개변수를 사용하여 변경할 수 있습니다.
예를 들어 두 개의 아티팩트 Artifact-A
및 Artifact-B
가 있고 디렉터리가 etc/usr/artifacts/
인 경우 디렉터리 구조는 다음과 같습니다.
etc/usr/artifacts/ Artifact-A/ ... contents of Artifact-A Artifact-B/ ... contents of Artifact-B
모든 아티팩트를 현재 작업 디렉터리에 다운로드합니다.
단계: - 용도: actions/download-artifact@v4- 이름: 다운로드한 파일의 구조 표시 실행: ls -R
모든 아티팩트를 특정 디렉터리에 다운로드합니다.
단계: - 사용: actions/download-artifact@v4 사용: 경로: path/to/artifacts- name: 다운로드한 파일의 구조 표시 실행: ls -R path/to/artifacts
동일한 디렉터리에 다운로드하려면:
단계: - 사용: actions/download-artifact@v4 with: path: path/to/artifacts merge-multiple: true- name: 다운로드한 파일의 구조 표시 실행: ls -R path/to/artifacts
결과는 다음과 같습니다.
path/to/artifacts/ ... contents of Artifact-A ... contents of Artifact-B
여러 Arch/OS 시나리오에서는 다양한 작업에 아티팩트가 내장되어 있을 수 있습니다. 모든 아티팩트를 동일한 디렉터리에 다운로드하거나 glob 패턴과 일치시키려면 pattern
및 merge-multiple
입력을 사용할 수 있습니다.
작업: 업로드: 전략: 매트릭스: 실행 시: [ubuntu-latest, macos-latest, windows-latest] 실행 시: ${{ Matrix.runs-on }} 단계: - 이름: 파일 생성 실행: echo "hello from ${{ Matrix.runs-on }}" > file-${{ Matrix.runs-on }}.txt - 이름: 업로드 아티팩트 사용: actions/upload-artifact@v4 포함: 이름: my-artifact-${{ Matrix.runs-on }} 경로: file-${{ Matrix.runs-on }}.txt 다운로드: 요구 사항: 실행 실행 업로드: ubuntu-최신 단계: - 이름: 모든 아티팩트 다운로드 사용: actions/download-artifact@v4 포함: 경로: my-artifact 패턴: my-artifact-* merge-multiple: true - 실행: ls -R my-artifact
그러면 다음과 같은 디렉터리가 생성됩니다.
my-artifact/ file-macos-latest.txt file-ubuntu-latest.txt file-windows-latest.txt
다른 워크플로 실행이나 다른 저장소에서 아티팩트를 다운로드하는 것이 유용할 수 있습니다. 기본적으로 권한 범위는 현재 워크플로 실행 내에서만 아티팩트를 다운로드할 수 있도록 지정됩니다. 이 시나리오에 대한 권한을 높이려면 다른 저장소와 함께 github-token
지정하고 식별자를 실행할 수 있습니다.
단계: - 사용: actions/download-artifact@v4 with: name: my-other-artifact github-token: ${{ secrets.GH_PAT }} # 대상 저장소에 대한 actions:read 권한이 있는 토큰 저장소: actions/toolkit run-id: 1234
아티팩트 업로드 중에는 파일 권한이 유지되지 않습니다. 모든 디렉토리에는 755
있고 모든 파일에는 644
있습니다. 예를 들어, chmod
사용하여 파일을 실행 가능하게 만든 다음 해당 파일을 업로드하면 다운로드 후 파일이 더 이상 실행 파일로 설정된다는 보장이 없습니다.
권한을 유지해야 하는 경우 아티팩트를 업로드하기 전에 모든 파일을 함께 tar
할 수 있습니다. 다운로드 후 tar
파일은 파일 권한과 대소문자 구분을 유지합니다.
- 이름: 'Tar 파일' 실행: tar -cvf my_files.tar /path/to/my/directory- 이름: '아티팩트 업로드' 사용: actions/upload-artifact@v4 포함: 이름: my-artifact 경로: my_files. 타르