diff --git a/.github/workflows/qa.yml b/.github/workflows/qa.yml index 92c0135..dcf9500 100644 --- a/.github/workflows/qa.yml +++ b/.github/workflows/qa.yml @@ -141,4 +141,22 @@ jobs: - name: Assert run: | ./test/assertFileContains ./output.properties "sonar.verbose=true" - + overrideSonarcloudUrlTest: + name: > + 'SONARCLOUD_URL' is used + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + - name: Run action with SONARCLOUD_URL + uses: ./ + with: + args: -Dsonar.scanner.internal.dumpToFile=./output.properties + env: + SONARCLOUD_URL: mirror.sonarcloud.io + SONAR_TOKEN: FAKE_TOKEN + - name: Assert + run: | + ./test/assertFileContains ./output.properties "sonar.host.url=mirror.sonarcloud.io" + ./test/assertFileContains ./output.properties "sonar.scanner.sonarcloudUrl=mirror.sonarcloud.io" diff --git a/Dockerfile b/Dockerfile index 05ec9e7..3cc91c6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ -FROM sonarsource/sonar-scanner-cli:11.0 +FROM sonarsource/sonar-scanner-cli:11.1 -LABEL version="3.0.0" \ +LABEL version="3.1.0" \ repository="https://github.com/sonarsource/sonarcloud-github-action" \ homepage="https://github.com/sonarsource/sonarcloud-github-action" \ maintainer="SonarSource" \ diff --git a/entrypoint.sh b/entrypoint.sh index 9cd1c40..d8e59e0 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -1,6 +1,8 @@ #!/bin/bash -set -e +set -eo pipefail + +declare -a args=() if [[ -z "${SONAR_TOKEN}" ]]; then echo "Set the SONAR_TOKEN env variable." @@ -17,14 +19,16 @@ if [[ -f "${INPUT_PROJECTBASEDIR%/}/build.gradle" || -f "${INPUT_PROJECTBASEDIR% to get more accurate results." fi -if [[ -z "${SONARCLOUD_URL}" ]]; then - SONARCLOUD_URL="https://sonarcloud.io" +if [[ ${SONARCLOUD_URL} ]]; then + args+=("-Dsonar.scanner.sonarcloudUrl=${SONARCLOUD_URL}") fi -debug_flag='' if [[ "$RUNNER_DEBUG" == '1' ]]; then - debug_flag=' --debug ' + args+=("--debug") fi unset JAVA_HOME -sonar-scanner $debug_flag -Dsonar.projectBaseDir=${INPUT_PROJECTBASEDIR} -Dsonar.host.url=${SONARCLOUD_URL} ${INPUT_ARGS} + +args+=("-Dsonar.projectBaseDir=${INPUT_PROJECTBASEDIR}") + +sonar-scanner "${args[@]}" ${INPUT_ARGS} diff --git a/test/assertFileContains b/test/assertFileContains index 69380e1..88a5dd2 100755 --- a/test/assertFileContains +++ b/test/assertFileContains @@ -1,10 +1,13 @@ #!/bin/bash +set -eo pipefail + error() { echo -e "\\e[31m✗ $*\\e[0m"; } -assertFileExists $1 +. ${BASH_SOURCE%/*}/assertFileExists $1 if ! grep -q $2 $1; then error "'$2' not found in '$1'" + cat $1 exit 1 fi \ No newline at end of file diff --git a/test/assertFileExists b/test/assertFileExists index 8f04686..1b7f79a 100755 --- a/test/assertFileExists +++ b/test/assertFileExists @@ -1,5 +1,7 @@ #!/bin/bash +set -eo pipefail + error() { echo -e "\\e[31m✗ $*\\e[0m"; } if [ ! -f $1 ]; then