存储库中定义的多个 github 操作失败

Multiple github actions defined in repository fails

我面临的问题是 Packer 构建失败。

这是我得到的错误: 在“/home/vsts-agent/actions-runner/_work/repo/repo/.github/actions/packer-build”下找不到 'action.yml'、'action.yaml' 或 'Dockerfile'。在 运行 本地操作之前,您是否忘记 运行 actions/checkout?

jsonnet 步骤工作正常,它们也来自自定义操作。这两个操作都在存储库中正确定义。当我在 jsonnet 步骤后重新运行 签出时,打包程序构建工作...但是,我丢失了 jsonnet 文件。

有没有人找到解决这个问题的方法?这是我的配置

name: Build
on: push
jobs:
  Build_Image:
    name: build
    runs-on: [self-hosted, tsa]
    steps:      
      - uses: azure/login@v1.1
        with:
          creds: ${{ secrets.AZURE_CREDENTIALS }}
      - uses: azure/get-keyvault-secrets@v1.0
        with:
          keyvault: scotty-packer-nonprod
          secrets: "MANAGED-IMAGE-SUBSCRIPTION-ID"
        id: morePipelineSecrets          
      - uses: azure/get-keyvault-secrets@v1.0
        with:
          keyvault: github-actions-nonprod
          secrets: "RESOURCE-GROUP, SUBSCRIPTION-NAME, SUBSCRIPTION-ID, TENANT-ID, RG-CLIENT-ID, RG-CLIENT-SECRET"
        id: pipelineSecrets
      - name: checkout
        uses: actions/checkout@v2       
      - name: jsonnet render template
        uses: ./.github/actions/jsonnet
        with:
          file: packer/ubuntu1804.jsonnet
          output_file: packer/ubuntu1804.json
      - name: jsonnet render vars
        uses: ./.github/actions/jsonnet
        with:
          file: packer/packer-vars.jsonnet
          output_file: packer/packer-vars.json  
      - name: Packer build
        uses: ./.github/actions/packer-build

目录结构

repo
  -.github
    -actions
      -jsonnet
         Dockerfile..etc
      -packer-build
         Dockerfile..etc
    -workflows
      -build.yml

这很奇怪 - 这两个问题不应该联系起来。更奇怪的是,在两次检查代码时它确实有效。您的 packer-build 文件夹中有一个 actions.yml?

尽管如此,可能的解决方法是:使用 actions/upload 操作来保留您的文件。

像这样:

- uses: actions/upload-artifact@v2
  with:
    name: Upload Jsonnet File
    path: packer/ubuntu1804.json

尝试在新作业中访问您的第二个不同操作,并使用 actions/download-artifact 操作获取文件。