首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用GitHub操作在PR中添加注释

如何使用GitHub操作在PR中添加注释
EN

Stack Overflow用户
提问于 2022-05-31 10:01:42
回答 1查看 864关注 0票数 2

在GitHub api中,有一个api接口来创建问题注释。我想在GitHub操作CI/CD管道中使用它。

我创建工作流。

代码语言:javascript
复制
name: Workflow

on:
  push:
    branches:
    - main
  pull_request:

jobs:
  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - name: Run jest coverage and log the result to GitHub summary
        run: |
          npm run test-coverage >> $GITHUB_STEP_SUMMARY
          echo "UNITTESTCOVERAGE=$GITHUB_STEP_SUMMARY" >> $GITHUB_ENV
          echo "" >> $GITHUB_STEP_SUMMARY

      - name: Post jest coverage comments
        env:
          PR_NUMBER: ${{ github.event.pull_request.number }}
          REPO: ${{ github.repository }}
          SUMMARY_URL: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
        run: |
          curl \
            -X POST \
            -H "Accept: application/vnd.github.v3+json" \
            -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
            https://api.github.com/repos/$REPO/issues/$PR_NUMBER/comments \
            -d '{"body":"# Job Summary\n'$SUMMARY_URL'\n'$UNITTESTCOVERAGE'\n"}'

  deploy:
    ...

GitHub bot没有显示jest覆盖结果,而是添加了注释。

代码语言:javascript
复制
Job Summary
...

/home/runner/work/_temp/_runner_file_commands/step_summary_d0****01-f**9-4**7-b**7-f0******dc3f

怎么做才能得到实际的结果?

更新1

我删除了不相关的步骤来表明这一点。

响应

更新2

我将jest --coverage设置为以文本格式创建覆盖率报告(以及其他格式,在这里不重要),我希望创建一个注释来显示文本格式报告。

package.json中,我添加了npm run test-coverage以运行Jest覆盖率报告。因此,npm run test-coverage将在终端中打印结果。

我使用npm run test-coverage >> $GITHUB_STEP_SUMMARY将结果重定向到GitHub步骤摘要,以便在GitHub步骤摘要中看到覆盖率报告。

我想使用GitHub api来创建一个注释来显示PR中的覆盖报告。我使用echo "UNITTESTCOVERAGE=$GITHUB_STEP_SUMMARY" >> $GITHUB_ENV将环境变量UNITTESTCOVERAGE设置为$GITHUB_STEP_SUMMARY,并且希望UNITTESTCOVERAGE能够得到覆盖报告。

但是,步骤Post jest coverage comments无法获得覆盖率报告。而不是报告,由GitHub api创建的注释显示了一个文件/目录路径。

如何将覆盖率报告添加到GitHub api的注释中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-08 05:31:08

环境变量$GITHUB_STEP_SUMMARY是一个文件名。

你的代码是做什么的:

  • npm run test-coverage >> $GITHUB_STEP_SUMMARY
    • 将覆盖率报告写入步骤摘要文件中。

  • echo "UNITTESTCOVERAGE=$GITHUB_STEP_SUMMARY" >> $GITHUB_ENV
    • 将环境变量UNITTESTCOVERAGE设置为与GITHUB_STEP_SUMMARY相同(文件名)

  • echo "" >> $GITHUB_STEP_SUMMARY
    • 将空行追加到步骤摘要

但是,您可能想要的是将文件的内容设置在步骤摘要env变量后面,作为新的env变量:

echo "UNITTESTCOVERAGE=$(cat $GITHUB_STEP_SUMMARY)" >> $GITHUB_ENV

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

https://stackoverflow.com/questions/72445812

复制
相关文章

相似问题

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