diff --git a/.github/workflows/qa-main.yml b/.github/workflows/qa-main.yml index 44d432f..6427f00 100644 --- a/.github/workflows/qa-main.yml +++ b/.github/workflows/qa-main.yml @@ -618,4 +618,39 @@ jobs: projectBaseDir: ./test/example-project - name: Assert failure of previous step if: steps.wrong_ssl_certificate.outcome == 'success' - run: exit 1 \ No newline at end of file + run: exit 1 + overridesScannerLocalFolderWhenPresent: + name: > + 'SCANNER_LOCAL_FOLDER' is overridden with warning when present + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + - name: Create a dummy SCANNER_LOCAL_FOLDER with dummy content in it + run: | + SCANNER_VERSION="6.2.1.4610" + SCANNER_LOCAL_FOLDER="$RUNNER_TEMP/sonar-scanner-cli-$SCANNER_VERSION-$RUNNER_OS-$RUNNER_ARCH" + # emit SCANNER_VERSION and SCANNER_LOCAL_FOLDER to be able to read them in the next steps + echo "SCANNER_VERSION=$SCANNER_VERSION" >> $GITHUB_ENV + echo "SCANNER_LOCAL_FOLDER=$SCANNER_LOCAL_FOLDER" >> $GITHUB_ENV + mkdir -p "$SCANNER_LOCAL_FOLDER" + touch "$SCANNER_LOCAL_FOLDER/some_content.txt" + - name: Assert SCANNER_LOCAL_FOLDER exists and dummy file is in it + run: | + [ -d "$SCANNER_LOCAL_FOLDER" ] || exit 1 + [ -f "$SCANNER_LOCAL_FOLDER/some_content.txt" ] || exit 1 + - name: Run action with SONAR_SCANNER_TEMP + uses: ./ + env: + SONAR_SCANNER_TEMP: /tmp/sonar-scanner + SONAR_HOST_URL: http://not_actually_used + NO_CACHE: true # force install-sonar-scanner-cli.sh execution + with: + args: -Dsonar.scanner.internal.dumpToFile=./output.properties + scannerVersion: ${{ env.SCANNER_VERSION }} + - name: Assert SCANNER_LOCAL_FOLDER exists and dummy file is not in it + run: | + [ -d "$SCANNER_LOCAL_FOLDER" ] || exit 1 + [ ! -f "$SCANNER_LOCAL_FOLDER/some_content.txt" ] || exit 1 + diff --git a/scripts/install-sonar-scanner-cli.sh b/scripts/install-sonar-scanner-cli.sh index f08a78e..6d810e3 100755 --- a/scripts/install-sonar-scanner-cli.sh +++ b/scripts/install-sonar-scanner-cli.sh @@ -48,5 +48,13 @@ fi unzip -q -o $SCANNER_FILE_NAME +SCANNER_UNZIP_FOLDER="sonar-scanner-$INPUT_SCANNERVERSION-$FLAVOR" # Folder name should correspond to the directory cached by the actions/cache -mv sonar-scanner-$INPUT_SCANNERVERSION-$FLAVOR $RUNNER_TEMP/sonar-scanner-cli-$INPUT_SCANNERVERSION-$RUNNER_OS-$RUNNER_ARCH +SCANNER_LOCAL_FOLDER="$RUNNER_TEMP/sonar-scanner-cli-$INPUT_SCANNERVERSION-$RUNNER_OS-$RUNNER_ARCH" + +if [ -d "$SCANNER_LOCAL_FOLDER" ]; then + echo "::warning title=SonarScanner::Cleaning existing scanner folder: $SCANNER_LOCAL_FOLDER" + rm -rf "$SCANNER_LOCAL_FOLDER" +fi + +mv -f "$SCANNER_UNZIP_FOLDER" "$SCANNER_LOCAL_FOLDER"