@actions/download-artifact
تحذير
action/download-artifact@v3 من المقرر إيقافه في 30 نوفمبر 2024 . يتعلم أكثر. وبالمثل، تمت جدولة إيقاف الإصدار 1/الإصدار 2 في 30 يونيو 2024 . يرجى تحديث سير العمل الخاص بك لاستخدام الإصدار 4 من الإجراءات المصطنعة. لن يؤثر هذا الإيقاف على أي إصدارات موجودة من GitHub Enterprise Server يستخدمها العملاء.
قم بتنزيل عناصر الإجراءات من عمليات تشغيل سير العمل لديك. يتم تشغيله داخليًا بواسطة حزمة @actions/artifact.
انظر أيضًا تحميل القطعة الأثرية.
@actions/download-artifact
مهم
download-artifact@v4+ غير مدعوم حاليًا على GHES حتى الآن. إذا كنت تستخدم GHES، فيجب عليك استخدام الإصدار 3.
يعد إصدار upload-artifact@v4 وdownload-artifact@v4 بمثابة تغييرات كبيرة في بنية الواجهة الخلفية لـ Artifacts. لديهم العديد من التحسينات في الأداء والسلوك.
لمزيد من المعلومات، راجع وثائق @actions/artifact
.
action/upload-artifact@v3
وما دونه غير مدعوم.للحصول على مساعدة بشأن التغييرات العاجلة، راجع MIGRATION.md.
- uses : actions/download-artifact@v4
with :
# Name of the artifact to download.
# If unspecified, all artifacts for the run are downloaded.
# Optional.
name :
# Destination path. Supports basic tilde expansion.
# Optional. Default is $GITHUB_WORKSPACE
path :
# A glob pattern to the artifacts that should be downloaded.
# Ignored if name is specified.
# Optional.
pattern :
# When multiple artifacts are matched, this changes the behavior of the destination directories.
# If true, the downloaded artifacts will be in the same directory specified by path.
# If false, the downloaded artifacts will be extracted into individual named directories within the specified path.
# Optional. Default is 'false'
merge-multiple :
# The GitHub token used to authenticate with the GitHub API.
# This is required when downloading artifacts from a different repository or from a different workflow run.
# Optional. If unspecified, the action will download artifacts from the current repo and the current workflow run.
github-token :
# The repository owner and the repository name joined together by "/".
# If github-token is specified, this is the repository that artifacts will be downloaded from.
# Optional. Default is ${{ github.repository }}
repository :
# The id of the workflow run where the desired download artifact was uploaded from.
# If github-token is specified, this is the run that artifacts will be downloaded from.
# Optional. Default is ${{ github.run_id }}
run-id :
اسم | وصف | مثال |
---|---|---|
download-path | المسار المطلق الذي تم فيه تنزيل العنصر (العناصر). | /tmp/my/download/path |
التنزيل إلى دليل العمل الحالي ( $GITHUB_WORKSPACE
):
steps :
- uses : actions/download-artifact@v4
with :
name : my-artifact
- name : Display structure of downloaded files
run : ls -R
التنزيل إلى دليل محدد (يدعم أيضًا التوسع ~
):
steps :
- uses : actions/download-artifact@v4
with :
name : my-artifact
path : your/destination/dir
- name : Display structure of downloaded files
run : 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
قم بتنزيل كافة العناصر إلى دليل العمل الحالي:
steps :
- uses : actions/download-artifact@v4
- name : Display structure of downloaded files
run : ls -R
قم بتنزيل جميع القطع الأثرية إلى دليل محدد:
steps :
- uses : actions/download-artifact@v4
with :
path : path/to/artifacts
- name : Display structure of downloaded files
run : ls -R path/to/artifacts
ولتنزيلها في نفس الدليل:
steps :
- uses : actions/download-artifact@v4
with :
path : path/to/artifacts
merge-multiple : true
- name : Display structure of downloaded files
run : ls -R path/to/artifacts
مما سيؤدي إلى:
path/to/artifacts/
... contents of Artifact-A
... contents of Artifact-B
في سيناريوهات نظام القوس/نظام التشغيل المتعددة، قد يكون لديك قطع أثرية مبنية في وظائف مختلفة. لتنزيل جميع العناصر إلى نفس الدليل (أو مطابقة نمط الكرة الأرضية)، يمكنك استخدام pattern
merge-multiple
.
jobs :
upload :
strategy :
matrix :
runs-on : [ubuntu-latest, macos-latest, windows-latest]
runs-on : ${{ matrix.runs-on }}
steps :
- name : Create a File
run : echo "hello from ${{ matrix.runs-on }}" > file-${{ matrix.runs-on }}.txt
- name : Upload Artifact
uses : actions/upload-artifact@v4
with :
name : my-artifact-${{ matrix.runs-on }}
path : file-${{ matrix.runs-on }}.txt
download :
needs : upload
runs-on : ubuntu-latest
steps :
- name : Download All Artifacts
uses : actions/download-artifact@v4
with :
path : my-artifact
pattern : my-artifact-*
merge-multiple : true
- run : ls -R my-artifact
وينتج عن هذا دليل مثل ذلك:
my-artifact/
file-macos-latest.txt
file-ubuntu-latest.txt
file-windows-latest.txt
قد يكون من المفيد تنزيل Artifacts من عمليات تشغيل سير عمل أخرى، أو حتى من مستودعات أخرى. افتراضيًا، يتم تحديد نطاق الأذونات بحيث يمكنها فقط تنزيل العناصر ضمن تشغيل سير العمل الحالي. لرفع مستوى الأذونات لهذا السيناريو، يمكنك تحديد github-token
مع مستودع آخر وتشغيل المعرفات:
steps :
- uses : actions/download-artifact@v4
with :
name : my-other-artifact
github-token : ${{ secrets.GH_PAT }} # token with actions:read permissions on target repo
repository : actions/toolkit
run-id : 1234
لا يتم الاحتفاظ بأذونات الملف أثناء تحميل العناصر. ستحتوي جميع الدلائل على 755
وستحتوي جميع الملفات على 644
. على سبيل المثال، إذا قمت بإنشاء ملف قابل للتنفيذ باستخدام chmod
ثم قمت بتحميل هذا الملف، فلن يكون من المضمون تعيين الملف بعد التنزيل كملف قابل للتنفيذ.
إذا كان يجب عليك الحفاظ على الأذونات، فيمكنك tar
كل ملفاتك معًا قبل تحميل العناصر. بعد التنزيل، سيحتفظ ملف tar
بأذونات الملف وحساسية حالة الأحرف.
- name : ' Tar files '
run : tar -cvf my_files.tar /path/to/my/directory
- name : ' Upload Artifact '
uses : actions/upload-artifact@v4
with :
name : my-artifact
path : my_files.tar