首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitHub操作: strategy.matrix作业的动态输出

GitHub操作: strategy.matrix作业的动态输出
EN

Stack Overflow用户
提问于 2021-12-09 09:38:47
回答 1查看 2.4K关注 0票数 16

我有一个包,它是组织中多个其他包的核心依赖项。我的目标是编写一个操作来自动化/简化这些反向依赖项的测试。大致上,该行动应:

  • 在公关中触发评论。
  • 使用PR中的代码运行一组反向依赖项的单元测试。
  • 回复PR,评论哪些测试失败了(如果有的话)。

步骤1和步骤3我必须工作,但我遇到了第2步的问题。我目前的解决方案是对所有作业输出进行硬编码,以便将结果从第2步传递到第3步,但我想知道是否有一种方法可以避免硬编码。

下面的示例工作流说明了我的问题:

代码语言:javascript
复制
name: Test
on: push

jobs:
  unit-tests:
    runs-on: ${{ matrix.os }}
    continue-on-error: true

    name: ${{ matrix.os }} (${{ matrix.pkg }})

    strategy:
      fail-fast: false
      matrix:
        # there will be more pkgs and OSes
        os: [ubuntu-latest]
        pkg: [pkgA, pkgB]

    # how to avoid hardcoding these?
    outputs:
      ubuntu-latest-pkgA: ${{ steps.update-output.outputs.ubuntu-latest-pkgA }}
      ubuntu-latest-pkgB: ${{ steps.update-output.outputs.ubuntu-latest-pkgB }}     
  
    steps:
      - uses: actions/checkout@v2
      
      - name: fake unit tests
        run: |
          exit 1 # fail all tests for now
        shell: bash

      - name: set error if tests fail
        id: update-output
        if: ${{ failure() }}
        run: echo "::set-output name=${{ matrix.os }}-${{ matrix.pkg }}::error"
        shell: bash

  aggregate-results:
    runs-on: ubuntu-latest
    needs: unit-tests
    steps:
      - name: Aggregate results
        env:
          NEEDS: ${{ toJSON(needs) }}
        run: echo "$NEEDS"

作业聚合-结果(受这个职位启发)很好地工作并打印:

代码语言:javascript
复制
{
  "unit-tests": {
    "result": "success",
    "outputs": {
      "ubuntu-latest-pkgA": "error",
      "ubuntu-latest-pkgB": "error"
    }
  }
}

我可以用它来创建一个信息丰富的评论。然而,作业unit-tests要求我对os和pkg的所有组合的输出进行硬编码。有什么方法可以动态地做到这一点吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-09 20:56:34

我也在找这个解决方案。实现此方法的唯一方法是切换到可重用的工作流,该工作流允许访问一个特定的作业上下文。

https://docs.github.com/en/actions/learn-github-actions/contexts#jobs-context

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70287603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档