在 github 操作中的可重用操作和调用者工作流程之间共享输出

问题描述 投票:0回答:1

我有可重用的工作流程,其中我声明了一些 github 操作输出。

# .github/actions/tests/action.yml
name: ""
description: "Runs Docker tests"
inputs:
  go-version:
    description: "Version of Go to set up"
    required: true
outputs:
  test_status:
    description: "The result of the tests: success or failure"

runs:
  using: "composite"
  steps:
    - uses: actions/checkout@v3
    
    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: ${{ inputs.go-version }}

    - name: Run tests
      id: run_tests
      run: |
        set +e
        output=$(go test -v ./... -tags=run_check)
        set -e
        echo $output
        if echo "$output" | grep -q "FAIL"; then
          echo "test_status=failure" >> $GITHUB_OUTPUT
          exit 1
        else

          echo "test_status=success" >> $GITHUB_OUTPUT
        fi
      working-directory: test
      shell: bash

我在另一个存储库中调用此操作 呼叫者工作流程:

      - name: Run post build tests
        id: post_buid_tests
        uses: <owner>/<repo>/.github/actions/tests@main 
        with:
          go-version: '1.23'

现在,当我尝试访问此输出时,它什么也没有返回

      - name: Post Node image
        if: ${{ steps.post_buid_tests.outputs.test_status == 'success' }}
        run: | 
          echo "Test Status: Successful"

steps.post_buid_tests.outputs.test_status 这不会返回任何内容..请注意,可重用操作和调用者工作流程位于不同存储库中。

我尝试使用 github_output,但它不起作用,而 github_env 工作正常。这是否意味着我们无法在 GitHub Actions 中的存储库之间共享变量?

github-actions
1个回答
0
投票

您拥有的是复合操作,它与可重用工作流程不同;有关详细信息,请参阅文档中的避免重复

您缺少在操作元数据中设置值:它必须看起来像

outputs:
  test_status:
    description: "The result of the tests: success or failure"
    value: ${{ steps.run_tests.outputs.test_status }}
© www.soinside.com 2019 - 2024. All rights reserved.