GitHub Actions:签出到不同文件夹后使用本地操作

问题描述 投票:0回答:1

我希望我的工作流程使用本地操作。 通常情况下,人们会这样做:

jobs:
  my_first_job:
    steps:
      - name: Check out repository
        uses: actions/checkout@v3
      - name: Use local my-action
        uses: ./.github/actions/my-action

但是,我想在不同的路径中签出我的存储库:

- name: Check out repository
  uses: actions/checkout@v3
  path: ${{ env.WORK_DIR }}/local_checkout

这会导致以下错误:

Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '<mypath>/.github/actions/my-action'. Did you forget to run actions/checkout before running your local action?

我应该注意,

my-action
尚未在发行版或主分支中,仅在我正在测试管道的当前分支中。 不幸的是,像
uses: ./${{ env.WORK_DIR }}/local_checkout/.github/actions/my-action
这样的东西不起作用,因为
env
uses
的上下文中不可用。

所以我的问题是:如果我在与默认路径不同的路径中签出存储库,如何使用本地操作?

jobs:
  my_first_job:
    steps:
      - name: Check out repository
        uses: actions/checkout@v3
        path: ${{ env.WORK_DIR }}/local_checkout
      - name: Use local my-action
        uses: ./${{ env.WORK_DIR }}/local_checkout/.github/actions/my-action
path yaml github-actions local checkout
1个回答
0
投票

您需要在“结帐”后添加额外的步骤,将

.github
文件夹复制到正确的位置:

     - name: Copy files
       working-directory: ${{ env.WORK_DIR }}/local_checkout
       run: cp -r .github "$GITHUB_WORKSPACE/"                                                                                                                    

(如果您有自托管的运行器,不清理其工作区,您可能需要将其

cp
更改为删除模式下的 rsync 以确保没有剩余)

© www.soinside.com 2019 - 2024. All rights reserved.