动作下载神器
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 # 可选,要搜索的已完成工作流程的状态或结论 # 可以是工作流程结论之一: # “失败”、“成功” , "neutral", "cancelled", "skipped", "timed_out", "action_required" # 或工作流程状态: # "completed", "in_progress", "queued" # 使用空字符串 ("") 忽略状态或搜索中的结论workflow_conclusion: success # 可选,将获得head commit SHA pr: ${{github.event.pull_request.number}} # 可选,无需指定PR是否commit: ${{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 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 # 可选,提取工件的目录,默认为当前目录path: extract_here # 可选,默认为当前仓库 repo: ${{ github.repository }} # 可选,检查工作流程运行是否有工件 # 然后将从上一个工作流程中获取最后一个可用的工件 # 默认 false,只是尝试从最后一个下载 check_artifacts: false # 可选,搜索最后一个工作流运行,其存储的工件名为“name”输入 # 默认 false search_artifacts: false # 可选,选择跳过解压下载的工件 # default falseskip_unpack: false # 可选,选择如果没有找到工件如何退出操作 # 可以是以下之一: # "fail", "warn", "ignore" # 默认失败 if_no_artifact_found: failed # 可选,搜索时包含分叉对于工件 # 默认 false allowed_forks: true
此操作的v3
版本从node16
切换到node20
作为运行时。节点 20 需要glibc>=2.28
。如果您的自托管运行器具有较旧的glibc
,请固定到v2
版本,但请注意它不会收到任何更新。