簡體   English   中英

無法訪問共享工作流調用的“with”中的環境變量?

[英]Cannot access env vars in `with` of shared-workflow invocation?

我需要維護一個將用於 PR 和 workflow_dispatch 的默認值。 以下是我嘗試使用的模式,但在嘗試訪問 env.var 時出現錯誤。 我在這里怎么錯了,我還能如何獲得相同的結果?

錯誤

The workflow is not valid. .github/workflows/calling-workflow.yml (Line: 18, Col: 26): Unrecognized named-value: 'env'. Located at position 29 within expression: inputs.checkFoldersArray || env.checkFoldersArray

調用-workflow.yml

on:
  pull_request:

  workflow_dispatch:
    inputs:
      checkFoldersArray:
        description: 'The working directory to run the tests in'
        required: false
        default: (".")
env:
  checkFoldersArray: (".")

jobs:
  pr-merge-checks:
    uses: <owner>/<repo>/.github/workflows/called-workflow.yml
    with:
      checkFoldersArray: ${{ inputs.checkFoldersArray || env.checkFoldersArray }}

我相信如果解決了,我相信這將代表將動態 Github 工作流矩陣與輸入值和預定義值結合起來的答案。

我想出的一個解決方案是將 env 聲明為您的默認值,然后有一個工作可以 output ${{ a || b }} 值,或者您需要應用默認 vs 輸入。

在此示例中,您可以使用 false 值進行調度,PR 將使用默認值 true。

on:
  pull_request:

  workflow_dispatch:
    inputs:
      someBooleanFlag:
        description: 'Must be true or false. Default is true'
        required: false
        type: boolean
        default: true

env:
  someBooleanFlag: true

jobs:
  setup-env:
    outputs:
      someBooleanFlag: ${{steps.setup-env.outputs.someBooleanFlag}}
    steps:
      - name: Setup Environment
        id: setup-env
        run: |
          echo "::set-output name=someBooleanFlag::${{inputs.someBooleanFlag || env.someBooleanFlag}}";

  pr-merge-checks:
    needs: setup-env
    uses: <owner>/<repo>/.github/workflows/called-workflow.yml
    with:
      someBooleanFlag: ${{needs.setup-env.outputs.someBooleanFlag}}

暫無
暫無

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

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