簡體   English   中英

使用可重用工作流程傳遞 vars 但沒有成功

[英]Passing vars using reusable workflow with no success

我們嘗試使用變通方法將一些 env 變量傳遞給可重用工作流,如下所示,但沒有傳遞任何變量。

工作流程 YAML 是:

name: "call my_reusable_workflow"

on:
  workflow_dispatch:

env: 
  env_branch: ${{ github.head_ref }}
  env_workspace: ${{ github.workspace }}

jobs:
  call_reusable_workflow_job:
    uses: my_github/my-reusable-workflow-repo/.github/workflows/used_wf_test.yml@master
    with:
      env_vars: |
        hello-to=Meir
        branch_name=${{ env.env_branch }}
    secrets:
      my_token: ${{secrets.ENVPAT}}

可重復使用的工作流程 YAML 是:

name: my_reusable_workflow

on:
  workflow_call:
    inputs:
      env_vars:
        required: true
        type: string
        description: list of vars and values
    secrets:
      giraffe_token:
        required: true    

jobs:
  reusable_workflow_job:
    runs-on: ubuntu-latest
    steps:  
    - name: set environment variables
      if: ${{ inputs.env_vars }}
      run: |
        for env in "${{ inputs.env_vars }}"
        do
          printf "%s\n" $env >> $GITHUB_ENV
        done

當操作運行時,它會獲取hello-to=Meir的值,但不會獲取branch_name=${{ env.env_branch }}的值。

我也嘗試將值傳遞為branch_name=${{ github.head_ref }}但沒有成功。

根據重用工作流局限性

在調用方工作流的工作流級別定義的env上下文中設置的任何環境變量都不會傳播到被調用的工作流。 有關詳細信息,請參閱“ 變量”和“ 上下文”。

因此,目前可重用工作流調用者不支持env上下文


但是,您可以將默認環境變量傳遞給可重用的工作流調用者。

例如,在您的特定場景中,您想要使用這些上下文:

  • github.head_ref
  • github.workspace

等效的默認環境變量是:

  • GITHUB_HEAD_REF
  • GITHUB_WORKSPACE

並且,您的可重用工作流程(例如reusable_workflow_set_env_vars.yml )將由其調用者(例如reusable_workflow_set_env_vars_caller.yml )調用,如下所示:

name: reusable_workflow_set_env_vars_caller

on:
  workflow_dispatch:

jobs:
  set-env-vars:
    uses: ./.github/workflows/reusable_workflow_set_env_vars.yml
    with:
      env_vars: |
        TEST_VAR='test var'
        GITHUB_HEAD_REF=$GITHUB_HEAD_REF
        GITHUB_WORKSPACE=$GITHUB_WORKSPACE
        GITHUB_REF=$GITHUB_REF

除此之外,關於可重用工作流的實現(例如reusable_workflow_set_env_vars.yml ):

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM