@actions/download-artifact
Peringatan
action/download-artifact@v3 dijadwalkan tidak digunakan lagi pada tanggal 30 November 2024 . Pelajari lebih lanjut. Demikian pula, v1/v2 dijadwalkan untuk dihentikan pada tanggal 30 Juni 2024 . Harap perbarui alur kerja Anda untuk menggunakan tindakan artefak v4. Penghentian ini tidak akan memengaruhi versi GitHub Enterprise Server apa pun yang digunakan oleh pelanggan.
Unduh Artefak Tindakan dari Alur Kerja Anda. Didukung secara internal oleh paket @actions/artifact.
Lihat juga unggahan artefak.
@actions/download-artifact
Kehilangan Izin
Unduh Artefak Tunggal
Unduh Semua Artefak
Unduh beberapa Artefak (yang difilter) ke direktori yang sama
Unduh Artefak dari Proses Alur Kerja atau Repositori lainnya
masukan
Keluaran
Perbaikan
Perubahan yang Mengganggu
v4 - Apa yang baru
Penggunaan
Contoh
Keterbatasan
Penting
download-artifact@v4+ saat ini belum didukung di GHES. Jika Anda menggunakan GHES, Anda harus menggunakan v3.
Rilis upload-artifact@v4 dan download-artifact@v4 merupakan perubahan besar pada arsitektur backend Artifacts. Mereka mengalami banyak peningkatan kinerja dan perilaku.
Untuk informasi selengkapnya, lihat dokumentasi @actions/artifact
.
Pengunduhan jauh lebih cepat, peningkatan hingga 90% dalam skenario terburuk.
Artefak dapat diunduh dari alur kerja dan repositori lain jika disertakan dengan PAT.
Pada pelari yang dihosting sendiri, aturan firewall tambahan mungkin diperlukan.
Pengunduhan artefak yang dibuat dari action/upload-artifact@v3
dan di bawahnya tidak didukung.
Untuk bantuan dalam mengatasi perubahan, lihat MIGRATION.md.
- menggunakan: action/download-artifact@v4 dengan: # Nama artefak yang akan diunduh. # Jika tidak ditentukan, semua artefak untuk proses akan diunduh. # Opsional. nama: #jalur tujuan. Mendukung ekspansi gelombang pasang dasar. # Opsional. Defaultnya adalah jalur $GITHUB_WORKSPACE: # Pola glob ke artefak yang harus diunduh. # Diabaikan jika nama ditentukan. # Opsional. pola: # Ketika beberapa artefak cocok, ini mengubah perilaku direktori tujuan. # Jika benar, artefak yang diunduh akan berada di direktori yang sama yang ditentukan oleh jalur. # Jika salah, artefak yang diunduh akan diekstraksi ke direktori bernama individual dalam jalur yang ditentukan. # Opsional. Default-nya adalah 'false' merge-multiple: # Token GitHub yang digunakan untuk mengautentikasi dengan GitHub API. # Ini diperlukan saat mengunduh artefak dari repositori berbeda atau dari alur kerja berbeda. # Opsional. Jika tidak ditentukan, tindakan tersebut akan mengunduh artefak dari repo saat ini dan alur kerja yang dijalankan saat ini. github-token: # Pemilik repositori dan nama repositori digabungkan dengan "/". # Jika github-token ditentukan, ini adalah repositori tempat artefak akan diunduh. # Opsional. Defaultnya adalah repositori ${{ github.repository }}: # Id alur kerja yang dijalankan dari mana artefak unduhan yang diinginkan diunggah. # Jika github-token ditentukan, dari sinilah artefak akan diunduh. # Opsional. Defaultnya adalah ${{ github.run_id }} run-id:
Nama | Keterangan | Contoh |
---|---|---|
download-path | Jalur absolut tempat artefak diunduh | /tmp/my/download/path |
Unduh ke direktori kerja saat ini ( $GITHUB_WORKSPACE
):
tangga: - menggunakan: action/download-artifact@v4 dengan: nama: my-artifact- nama: Struktur tampilan file yang diunduh dijalankan: ls -R
Unduh ke direktori tertentu (juga mendukung ~
ekspansi):
tangga: - menggunakan: action/download-artifact@v4 dengan: nama: jalur artefak saya: nama/tujuan/dir Anda: Struktur tampilan file yang diunduh dijalankan: ls -R tujuan/dir Anda
Jika parameter masukan name
tidak diberikan, semua artefak akan diunduh. Untuk membedakan artefak yang diunduh, secara default, direktori yang ditandai dengan nama artefak akan dibuat untuk setiap artefak. Perilaku ini dapat diubah dengan parameter input merge-multiple
.
Contoh, jika ada dua artefak Artifact-A
dan Artifact-B
, dan direktorinya adalah etc/usr/artifacts/
, struktur direktori akan terlihat seperti ini:
etc/usr/artifacts/ Artifact-A/ ... contents of Artifact-A Artifact-B/ ... contents of Artifact-B
Unduh semua artefak ke direktori kerja saat ini:
tangga: - kegunaan: action/download-artifact@v4- nama: Struktur tampilan file yang diunduh dijalankan: ls -R
Unduh semua artefak ke direktori tertentu:
tangga: - menggunakan: action/download-artifact@v4 dengan: path: path/to/artifacts- nama: Struktur tampilan file yang diunduh dijalankan: ls -R path/to/artifacts
Untuk mengunduhnya ke direktori yang sama :
tangga: - menggunakan: action/download-artifact@v4 dengan: path: path/to/artifacts merge-multiple: true- name: Struktur tampilan file yang diunduh dijalankan: ls -R path/to/artifacts
Yang akan menghasilkan:
path/to/artifacts/ ... contents of Artifact-A ... contents of Artifact-B
Dalam beberapa skenario arch/os, Anda mungkin memiliki Artefak yang dibuat dalam pekerjaan yang berbeda. Untuk mengunduh semua Artefak ke direktori yang sama (atau mencocokkan pola glob), Anda dapat menggunakan pattern
dan merge-multiple
input.
pekerjaan: unggah: strategi: matriks: berjalan-on: [ubuntu-terbaru, macos-terbaru, windows-terbaru] berjalan-on: ${{ matriks.runs-on }} langkah-langkah: - nama: Buat File dijalankan: echo "hello from ${{ Matrix.runs-on }}" > file-${{ Matrix.runs-on }}.txt - nama: Unggah Artefak menggunakan: action/upload-artifact@v4 dengan: nama: my-artifact-${{ Matrix.runs-on }} jalur: file-${{ Matrix.runs-on }}.txt unduh: kebutuhan: unggah run-on: ubuntu-langkah terbaru: - nama: Unduh Semua Artefak menggunakan: tindakan/unduh-artifact@v4 dengan: jalur: pola artefak-saya: artefak-saya-* gabungan-banyak: benar - jalankan: ls -R artefak saya
Ini menghasilkan direktori seperti ini:
my-artifact/ file-macos-latest.txt file-ubuntu-latest.txt file-windows-latest.txt
Mungkin berguna untuk mengunduh Artefak dari alur kerja lain, atau bahkan repositori lain. Secara default, izin dibatasi sehingga hanya dapat mengunduh Artefak dalam alur kerja yang dijalankan saat ini. Untuk meningkatkan izin untuk skenario ini, Anda dapat menentukan github-token
bersama dengan repositori lain dan menjalankan pengidentifikasi:
tangga: - menggunakan: action/download-artifact@v4 dengan: nama: my-other-artifact github-token: ${{ rahasia.GH_PAT }} # token dengan tindakan: izin baca pada repositori repo target: action/toolkit run-id: 1234
Izin file tidak dipertahankan selama pengunggahan artefak. Semua direktori akan memiliki 755
dan semua file akan memiliki 644
. Misalnya, jika Anda membuat file dapat dieksekusi menggunakan chmod
dan kemudian mengunggah file tersebut, setelah pengunduhan, file tersebut tidak lagi dijamin akan ditetapkan sebagai file yang dapat dieksekusi.
Jika Anda harus mempertahankan izin, Anda dapat tar
semua file Anda sebelum artefak diunggah. Pasca pengunduhan, file tar
akan mempertahankan izin file dan sensitivitas huruf besar-kecil.
- nama: 'File tar' dijalankan: tar -cvf my_files.tar /path/to/my/directory- nama: 'Unggah Artefak' menggunakan: tindakan/upload-artifact@v4 dengan: nama: jalur artefak-saya: file_saya. ter