在组织级别上分叉actions/checkout@v2以供存储库的github actions使用

3

问题:

Github Actions 本质上没有关于其运行代码库中代码的信息。为了解决这个问题,有一个名为 actions/checkout 的工作流程,它是大多数工作流程的默认开始。

我们的企业帐户仅允许使用本地操作: enter image description here

因此,我们无法在工作流程开始时使用 actions/checkout@v2,从而使我们的 Github Actions 无用。

拟议解决方案

actions/checkout 子模块作为代码库的引用进行 fork,并像以下方式使用该引用:

steps:
  - uses: <enterprise_name>/<repo_name>/checkout@main

当我将此操作作为测试运行时,我收到以下错误消息:

Error: Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under
'/home/runner/work/_actions/<enterprise_name>/<repo_name>/main/checkout'. 
Did you forget to run actions/checkout before running your local action?

我的问题是:

是否有一种方法可以运行分叉或本地版本的actions/checkout?上面的示例告诉我,我无法运行actions/checkout的本地版本,因为我已经克隆了该仓库,这是一种讽刺的错误。

1个回答

4

您需要将actions/checkout存储库推送到企业内部或公共存储库中。然后更新您的工作流以引用organization/repo@2

在将actions/checkout存储库派生到我的jessehouwing-actions后,这将导致YAML的以下更新:

steps:
  # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
  - uses: actions/checkout@v3

Would become:

steps:
  # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
  - uses: jessehouwing-actions/checkout@v3

不要使用子模块。


克隆存储库并将其推送到组织存储库中是有效的。我能够使用以下方式引用代码:organization/repo@my_branch - Reid Williams
你能分享一下 YAML 文件吗? - Shogoot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接