GitHub 不允许将机密传递给可重用的工作流程
Posted
技术标签:
【中文标题】GitHub 不允许将机密传递给可重用的工作流程【英文标题】:GitHub does not allow secrets to be passed down to reusable workflow 【发布时间】:2022-01-15 00:51:32 【问题描述】:我正在尝试将秘密传递给可重用的工作流程,如下所示: https://docs.github.com/en/actions/learn-github-actions/reusing-workflows#passing-inputs-and-secrets-to-a-reusable-workflow
但是流水线失败了,说明:
The workflow is not valid. .github/workflows/test.workflow-test.yml (Line: 17, Col: 9): Unexpected value 'secrets'
我的 .github/actions/test/action.yml 看起来像这样:
name: Reusable workflow example
on:
workflow_call:
inputs:
username:
required: true
type: string
secrets:
token:
required: true
jobs:
example_job:
name: show
runs-on: ubuntu-latest
steps:
- name: show data
runs: echo $ secrets.token
我相应地称呼它:
name: Call a reusable workflow
on:
push:
branches:
- "feature/workflow-test"
jobs:
my-test-job:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
- uses: ./.github/actions/test
with:
username: John
secrets:
token: secret Token
我在这里缺少什么?它与 GitHub 文档中的代码示例几乎相同。
【问题讨论】:
Per docs.github.com/en/actions/learn-github-actions/… 一个步骤没有密钥。 【参考方案1】:我可以从您的示例中看到两个问题。
可重用工作流的路径必须是.github/workflows
。目前不支持子目录。
此外,您调用可重用工作流的方式不符合文档。
这是一个应该可以工作的例子:
name: Call a reusable workflow
on:
workflow_dispatch:
jobs:
reusable-job:
uses: <owner>/<repo>/.github/workflows/<reusable workflow>@master
with:
username: john
secrets:
token: test
并遵循可重用的工作流程:
name: Reusable workflow
on:
workflow_call:
inputs:
username:
required: true
type: string
secrets:
token:
required: true
jobs:
show:
runs-on: ubuntu-latest
steps:
- name: Show data
run: |
echo $ inputs.username
echo $ secrets.token
【讨论】:
以上是关于GitHub 不允许将机密传递给可重用的工作流程的主要内容,如果未能解决你的问题,请参考以下文章
使用 Azure DevOps 构建管道将机密传递给容器时,Docker BuildKit 返回“/run/secrets/<secret-id>:没有这样的文件或目录”
使用 pyplot 绘制多个函数,将函数传递给函数,并重用代码