使用 aws codebuild 未收到有关 bitbucket 拉取请求的 Sonar 评论

Posted

技术标签:

【中文标题】使用 aws codebuild 未收到有关 bitbucket 拉取请求的 Sonar 评论【英文标题】:Not getting Sonar comments on bitbucket pull request using aws codebuild 【发布时间】:2020-04-21 03:55:33 【问题描述】:

您好,我正在使用带有声纳的 aws 代码构建来进行 bitbucket 拉取请求装饰......但我没有收到任何关于拉取请求的 cmets....

aws 代码构建日志....

[sonar4bitbucket] No open pull requests with source branch '' found. No analysis will be performed. ....

这是我的 aws 代码构建命令 ....

sonar-scanner  -Dsonar.branch=$GIT_BRANCH -Dsonar.bitbucket.branchName=$GIT_BRANCH -Dsonar.analysis.mode=issues -Dsonar.bitbucket.oauthClientSecret=secret -Dsonar.bitbucket.oauthClientKey=key -Dsonar.bitbucket.minSeverity=INFO -Dsonar.host.url=my server-url -Dsonar.bitbucket.teamName=teamname -Dsonar.bitbucket.repoSlug=myreponame -Dsonar.bitbucket.accountName=my-account-name -Dsonar.bitbucket.approvalFeatureEnabled=false -Dsonar.bitbucket.buildStatusEnabled=true 

我认为问题在于这两个属性,即-Dsonar.branch=$GIT_BRANCH -Dsonar.bitbucket.branchName=$GIT_BRANCH,但我不知道如何从 aws 代码构建环境变量中获取这些属性的值

(https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)

【问题讨论】:

【参考方案1】:

只需在 buildspec 中运行此命令即可推断分支名称:

version: 0.2
phases:
  build:
    commands:
      - MY_BRANCH_NAME=$(git for-each-ref --format='%(objectname) %(refname:short)' refs/heads | awk "/^$(git rev-parse HEAD)/ print \$2")
      - echo $MY_BRANCH_NAME

输出类似于:

[Container] 2020/01/03 10:41:04 Running command MY_BRANCH_NAME=$(git for-each-ref --format='%(objectname) %(refname:short)' refs/heads | awk "/^$(git rev-parse HEAD)/ print \$2") 

[Container] 2020/01/03 10:41:04 Running command echo $MY_BRANCH_NAME 
master

感谢@cascabal 的回答:How to find the current git branch in detached HEAD state

【讨论】:

感谢@cascabal 我读了这一篇但很难得到这一篇我在这里找到了解决方案github.com/thii/aws-codebuild-extras

以上是关于使用 aws codebuild 未收到有关 bitbucket 拉取请求的 Sonar 评论的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS CodeBuild 期间使用 npm install 时未创建 node_modules 目录

如何强制 CodeBuild (AWS) 失败?

AWS CodeBuild 解压后的大小必须小于 350198 字节

AWS CodeBuild 错误:运行时“nodejs”不支持别名“14.x”的主要版本

使用 AWS CDK 创建用于构建 Docker 映像的 CodeBuild 项目

AWS Batch 与 AWS CodeBuild