An action that downloads and extracts uploaded artifacts associated with a given workflow and commit or other criteria.
Official actions/download-artifact can download from another workflow run when its exact run ID is known. This action can also find a run by workflow, commit, branch, tag, pull request or other criteria and download its artifacts.
If
commit,pr,branch,ref,run_idorworkflow_conclusionis not specified then the artifact from the most recent successfully completed workflow run will be downloaded.
Do not specify pr, commit, branch, ref, run_id together or workflow_conclusion and run_id together. Pick just one of each or none.
- name: Download artifact
id: download-artifact
uses: dawidd6/action-download-artifact@<REF>
with:
# Optional, GitHub token, a Personal Access Token with `public_repo` scope if needed
# Required, if the artifact is from a different repo
# Required, if the repo is private a Personal Access Token with `repo` scope is needed or GitHub token in a job where the permissions `action` scope set to `read`
github_token: ${{secrets.GITHUB_TOKEN}}
# Optional, workflow file name or ID
# If not specified, will be inferred from run_id (if run_id is specified), or will be the current workflow
workflow: workflow_name.yml
# If no workflow is set and workflow_search set to true, then the most recent workflow matching
# all other criteria will be looked up instead of using the current workflow
workflow_search: false
# Optional, the status or conclusion of a completed workflow to search for
# Can be one of a workflow conclusion:
# "failure", "success", "neutral", "cancelled", "skipped", "timed_out", "action_required"
# Or a workflow status:
# "completed", "in_progress", "queued"
# Use the empty string ("") to ignore status or conclusion in the search
workflow_conclusion: success
# Optional, will get head commit SHA
pr: ${{github.event.pull_request.number}}
# Optional, no need to specify if PR is
commit: ${{github.event.pull_request.head.sha}}
# Optional, will use the specified branch. Defaults to all branches
branch: master
# Optional, branch/tag/commit ID to reference. This can supersede both
# branch and commit above.
ref: master
# Optional, defaults to all types
event: push
# Optional, will use specified workflow run
# use ${{ github.event.workflow_run.id }} when your action runs in a workflow_run event
# and wants to download from the triggering workflow run
run_id: 1122334455
# Optional, run number from the workflow
run_number: 34
# Optional, uploaded artifact name,
# will download all artifacts if not specified
# and extract them into respective subdirectories
# https://github.com/actions/download-artifact#download-all-artifacts
# is treated as a regular expression if input name_is_regexp is true
# will download only those artifacts with a name that matches this regular expression
# https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions
name: artifact_name
# Optional, name is treated as a regular expression if set true
name_is_regexp: true
# Optional, a directory where to extract artifact(s), defaults to the current directory
path: extract_here
# Optional, defaults to current repo
repo: ${{ github.repository }}
# Optional, check the workflow run to whether it has an artifact
# then will get the last available artifact from the previous workflow
# default false, just try to download from the last one
check_artifacts: false
# Optional, search for the last workflow run whose stored an artifact named as in `name` input
# default false
search_artifacts: false
# Optional, choose to skip unpacking the downloaded artifact(s)
# default false
skip_unpack: false
# Optional, choose how to exit the action if no artifact is found
# can be one of:
# "fail", "warn", "ignore"
# default fail
if_no_artifact_found: fail
# Optional, include forks when searching for artifacts
# default false
allow_forks: true
# Optional, choose to unpack the downloaded artifact(s) using `unzip` system utility
# default false
use_unzip: false
# Optional, if multiple artifacts are found with `name_is_regexp` set to `true`, merge them into one directory
# default false
merge_multiple: falseOn GitHub Enterprise Server, use use_unzip: true for large artifacts so extraction does not load the complete ZIP into memory.
Workflow, branch, event and commit/ref filters are sent to GitHub's API. workflow_conclusion, run_number, fork filtering, check_artifacts and search_artifacts are evaluated by this action; artifact checks may require an additional paginated API request for every candidate workflow run. Expired artifacts do not satisfy check_artifacts or search_artifacts, so runs whose artifacts are gone are skipped. Candidate runs are sorted newest first by this action rather than relying on the order the API returns them in.
v3 release of this action switched from node16 to node20 as runtime.
Node 20 requires glibc>=2.28. If your self-hosted runner has older glibc, pin to v2 release, but note it won't receive any updates.