env:
  REPO_NAME: "bt-react-trumbowyg"

steps:
  - label: ":sonarcloud: Run SonarCloud for branches"
    key: "sonar-branch"
    if: build.pull_request.id == null
    commands:
      # buildkite-agent artifact download "coverage/*" .
      - "sonar-scanner \
        -Dsonar.organization=bananatag \
        -Dsonar.projectKey=bananatag_$REPO_NAME \
        -Dsonar.branch.name=$BUILDKITE_BRANCH \
        -Dsonar.sources=\"src\" \
        -Dsonar.javascript.lcov.reportPaths=\"coverage/lcov.info\""
    plugins:
      - docker#v3.13.0:
          image: "sonarsource/sonar-scanner-cli:4.7"
          environment:
            - "SONAR_HOST_URL=https://sonarcloud.io"
            - "SONAR_SCANNER_OPTS=-Xmx512m"
            - "SONAR_TOKEN"
          workdir: '/usr/src'
  - label: ":sonarcloud: Run SonarCloud for Pull Request"
    key: "sonar-pr"
    if: build.pull_request.id != null
    commands:
      # buildkite-agent artifact download "coverage/*" .
      - "sonar-scanner \
        -Dsonar.projectKey=bananatag_$REPO_NAME \
        -Dsonar.organization=bananatag \
        -Dsonar.sources=\"src\" \
        -Dsonar.javascript.lcov.reportPaths=\"coverage/lcov.info\" \
        -Dsonar.pullrequest.base=$BUILDKITE_PULL_REQUEST_BASE_BRANCH \
        -Dsonar.pullrequest.branch=$BUILDKITE_BRANCH \
        -Dsonar.pullrequest.key=$BUILDKITE_PULL_REQUEST"
    plugins:
      - docker#v3.13.0:
          image: "sonarsource/sonar-scanner-cli:4.7"
          environment:
            - "SONAR_HOST_URL=https://sonarcloud.io"
            - "SONAR_SCANNER_OPTS=-Xmx512m"
            - "SONAR_TOKEN"
          workdir: '/usr/src'
  - wait
  - label: "Validate SonarCloud Quality Gate"
    key: "sonar-quality-gate"
    commands:
      - bash .buildkite/scripts/clone-pipeline-utils.sh
      - bash pipeline-utils/sonarcloud/validateSonarCloudQualityGates.sh
    env:
      - GITHUB_OAUTH_TOKEN: $GITHUB_OAUTH_TOKEN
    plugins:
      - ssh://git@bitbucket.org/bananatag/aws-ssm-buildkite-plugin.git#v1.1.0:
          region: us-west-2
          parameters:
            SONAR_AUTH_TOKEN: /buildkite/SONAR_AUTH_TOKEN
  - wait
  - label: "Pre Release"
    if: build.branch != "main"
    commands:
      - "buildkite-agent pipeline upload .buildkite/02-prerelease.yml"
  - label: "Release"
    if: build.branch == "main"
    commands:
      - "buildkite-agent pipeline upload .buildkite/02-release.yml"