如何让 Github PR 中的编译错误更加普遍?

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

我有一个大型(约 100 名开发人员)、NX 管理的 Typescript 存储库,其中 github 操作在拉取请求上运行。操作工作流程运行许多步骤,其中主要步骤基本上通过运行

yarn run nx affected --target=build
来编译代码。一切正常。

但是,如果 PR 出现编译错误,开发者很难发现错误。他们需要:

  1. 查看PR页面,看到检查(“CI/main”)失败,点击详情
  2. 查看构建页面。它显示了很多步骤,其中“构建(仅限主代理)”步骤标记为失败(请参见下面的屏幕截图)
  3. 展开该步骤,此时他们会得到 1700 行日志,以无用的
    Error: Process completed with exit code 1.
  4. 结束
  5. 在此日志中搜索
    Error:
    - 只有现在您才能看到实际的编译错误(请参见下面的屏幕截图)。

许多开发人员在这个过程中迷失了方向,尤其是在第 4 步(搜索

Error:
),并且需要帮助。开发者指导只能到此为止...

问题: 在我的工作流程中我可以做些什么来使错误更容易被发现吗?我依稀记得在 Azure Devops 中你可以...

typescript github-actions nrwl-nx
1个回答
0
投票

您可以使用 gh 命令直接向拉取请求添加注释。

示例操作文件:

on:
    pull_request

jobs:
    ci_build:
        ...
        steps:
            - name: Build code
              run: |
                (build command) 2>&1 | tee build.log
            
            - name: Report failures
              if: failure()
              env:
                GH_TOKEN: ${{ github.token }}
                PR_ID = ${{ github.event.pull_request.number }}
              run: |
                tail -n 50 build.log > build_tail.log
                gh pr comment ${PR_ID} --body-file build_tail.log
                

这里修改了构建命令,除了正常输出(转到 GitHub 操作结果)之外,还将所有日志消息放入

build.log

后面的步骤仅在失败时运行,并从日志中获取最后 50 行。

gh pr comment
命令用于向拉取请求发布评论。访问 GitHub API 需要 GH_TOKEN,并且从触发事件中获取 PR_ID,以识别构建与哪个拉取请求相关。

© www.soinside.com 2019 - 2024. All rights reserved.