action download artifact
6
下载并提取与给定工作流程和提交或其他标准相关的上传工件的操作。
假设您有一个工作流程,其中有一个作业,最后使用actions/upload-artifact
操作上传一个工件,并且您希望在第一个工作流程之后运行的另一个工作流程中下载此工件。官方actions/download-artifact
不允许这样做。这就是为什么我决定创建这个动作。通过仅了解工作流名称和提交 SHA 或其他详细信息,您可以从与该提交或其他条件关联的不同工作流下载之前上传的工件并使用它。
如果未指定
commit
、pr
、branch
、run_id
或workflow_conclusion
,则将下载最近成功完成的工作流运行中的工件。
不要同时指定pr
、 commit
、 branch
、 run_id
或同时指定workflow_conclusion
和run_id
。只选择其中一项或不选择一项。
- name: 下载工件 id: download-artifact 使用:dawidd6/action-download-artifact@v6 with: # 可选,GitHub 令牌,如果需要,具有 `public_repo` 范围的个人访问令牌 # 必需,如果工件来自不同的地方repo # 必需,如果存储库是私有的,则需要具有“repo”范围的个人访问令牌,或者在权限“action”范围设置为“read”的作业中使用 GitHub 令牌 github_token: ${{secrets.GITHUB_TOKEN}} # 可选,工作流文件名或 ID # 如果未指定,将从 run_id 推断(如果指定了 run_id),或者将是当前工作流工作流:workflow_name.yml # 如果未设置工作流并且workflow_search设置为true,则最近匹配的工作流程 # 将查找所有其他条件,而不是使用当前工作流程workflow_search: false # 可选,要搜索的已完成工作流程的状态或结论 # 可以是一个工作流程结论: # "failure", "success", "neutral", "cancelled", "skipped", "timed_out", "action_required" # 或者工作流程状态: # "completed", "in_progress", "queued" " # 使用空字符串 ("") 忽略搜索中的状态或结论workflow_conclusion: success # 可选,将获取头提交 SHA pr: ${{github.event.pull_request.number}} # 可选,无需指定 PR 是否提交: ${{github.event.pull_request.head.sha}} # 可选,将使用指定分支。默认为所有分支branch: master # 可选,默认为所有类型 event: push # 可选,将使用指定的工作流程运行 # 当您的操作在工作流程运行事件中运行时使用 ${{ github.event.workflow_run.id }} # 并且想要从触发工作流程下载 run run_id: 1122334455 # 可选,工作流程中的运行编号 run_number: 34 # 可选,上传的工件名称, # 如果未指定,将下载所有工件 # 并提取将它们放入各自的子目录中 # https://github.com/actions/download-artifact#download-all-artifacts # 如果输入 name_is_regexp 为 true,则将其视为正则表达式 # 将仅下载名称与此正则表达式匹配的工件# https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_expressions name:artifact_name # 可选,如果设置为 true,名称将被视为正则表达式 name_is_regexp: true # 可选,提取工件的目录,默认为当前目录路径:extract_here # 可选,默认为当前存储库 repo: ${{ github.repository }} # 可选,检查工作流程运行是否有artifact # 然后将从上一个工作流程中获取最后一个可用的工件 # 默认 false,只尝试从最后一个下载 check_artifacts: false # 可选,搜索最后一个工作流程运行,其存储的工件名为 `name` 输入 # 默认错误的search_artifacts: false # 可选,选择跳过解压下载的工件 # 默认 false skip_unpack: false # 可选,选择如果未找到工件如何退出操作 # 可以是以下之一: # "fail", "warn" , "ignore" # 默认失败 if_no_artifact_found: failed # 可选,搜索工件时包含分叉 # 默认 false allowed_forks: true
此操作的v3
版本从node16
切换到node20
作为运行时。节点 20 需要glibc>=2.28
。如果您的自托管运行程序具有较旧的glibc
,请固定到v2
版本,但请注意它不会收到任何更新。