存储库中定义的多个 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 操作获取文件。
我面临的问题是 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 操作获取文件。