【问题标题】:SonarQube: how to use bash script variable inside yaml fileSonarQube:如何在 yaml 文件中使用 bash 脚本变量
【发布时间】:2021-12-30 20:07:57
【问题描述】:

我想创建条件 pr_number 变量并将其分配给 Dsonar.pullrequest.key。这就是我尝试这样做的方式,但它不起作用:pr_number 未定义

 name: SonarQube

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

jobs:
  sonarqube:
    runs-on: ubuntu-latest
    steps:
      - name: Run sonarqube
        run:
          if [[ -z "${{github.event.number}}" ]]; then pr_number=${{ github.event.release }}; else pr_number=${{ github.event.number }}; fi |
          sonar-scanner
            -Dsonar.pullrequest.key=$pr_number

【问题讨论】:

  • 您说“它不起作用”,但您能更具体一点吗? (即,添加一个错误日志左右将有助于获得所谓的minimal reproducible example

标签: bash yaml sonarqube sonarqube-scan sonar-runner


【解决方案1】:

作为一种解决方案,当 github.event.number 和 pullrequest.base 为 null 时,我使用内联 if 语句添加了命令参数,并立即在 sonarqube.yml 中使用 bash 脚本连接它

- name: Run sonarqube
        run:
          sonar-scanner
          -Dsonar.dependencyCheck.htmlReportPath=dependency-check-report.html
          "-Dsonar.pullrequest.key=`if [ -z "${{github.event.number}}"  ]; then echo ${{github.sha}}; else echo ${{github.event.number}}; fi`"
          "-Dsonar.pullrequest.branch=`if [ -z "${{github.head_ref}}"  ]; then echo ${{github.sha}}; else echo ${{github.head_ref}}; fi`"
          -Dsonar.pullrequest.base=${GITHUB_BASE_REF#refs/heads/}
          -Dsonar.pullrequest.github.repository=${GITHUB_REPOSITORY}
          -Dsonar.pullrequest.github.endpoint=${GITHUB_API_URL}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 2021-12-01
    • 2014-03-02
    相关资源
    最近更新 更多