我在存储库中定义了一些环境变量DEV/QA/PROD,并设置了一组变量,即 a、b、c,我想将它们传递给可重新启动的工作流程。如何实现这一目标?
我已尝试如下,但在调用的工作流程中无法访问变量值。
根据 GitHub Actions 文档:
要在多个工作流中重用变量,请在组织、存储库或环境级别设置它们,并使用 vars 上下文引用它们。有关详细信息,请参阅“变量”和“上下文”。
但它似乎不起作用。
jobs:
call-workflow-passing-data:
uses: octo-org/example-repo/.github/workflows/reusable-workflow.yml@main
with:
config-path: .github/labeler.yml
deploy-a: ${{ vars.a}}
deploy-b: ${{ vars.b }}
secrets:
envPAT: ${{ secrets.envPAT }}
Run Code Online (Sandbox Code Playgroud)
在目标工作流程中,当我使用它时${{ inputs.deploy-a }},它没有给出任何价值。
任何帮助,将不胜感激。
我自己也遇到过这个问题,并且非常努力地寻找其原因。
我发现无法为调用可重用工作流程的工作流程设置环境。这意味着,如果您为每个环境(开发、生产等)定义了环境变量,则这些变量将无法通过使用范围来使用vars。
我的解决方案是将environment参数发送到可重用工作流程并使用那里提取变量vars。虽然没有我想要的那么漂亮,但它确实有效。
从我的可重用工作流程中:
on:
workflow_call:
inputs:
environment:
type: string
required: true
env:
deploy-a: ${{ vars.a }}
deploy-b: ${{ vars.b }}
jobs:
do-something:
environment: ${{ inputs.environment }}
Run Code Online (Sandbox Code Playgroud)
${{ env.deploy-a }}然后您可以在工作流程的其余部分中使用。
| 归档时间: |
|
| 查看次数: |
1757 次 |
| 最近记录: |