diff --git a/.github/workflows/qa-main.yml b/.github/workflows/qa-main.yml index 410d4a7..b8ce7c4 100644 --- a/.github/workflows/qa-main.yml +++ b/.github/workflows/qa-main.yml @@ -809,3 +809,37 @@ jobs: [ -f "$SONAR_SSL_FOLDER/truststore.p12" ] || exit 1 TRUSTSTORE_P12_MOD_TIME_T3=$(stat -c %Y "$SONAR_SSL_FOLDER/truststore.p12") [ "$TRUSTSTORE_P12_MOD_TIME_T2" != "$TRUSTSTORE_P12_MOD_TIME_T3" ] || exit 1 + scannerVersionValidationTest: + name: > + 'scannerVersion' input validation + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + - name: Run action with invalid scannerVersion + id: invalid_version + uses: ./ + continue-on-error: true + with: + scannerVersion: "7.1.0-SNAPSHOT" + args: -Dsonar.scanner.internal.dumpToFile=./output.properties + env: + NO_CACHE: true + SONAR_HOST_URL: http://not_actually_used + - name: Assert failure of previous step + if: steps.invalid_version.outcome == 'success' + run: | + echo "Action with invalid scannerVersion should have failed but succeeded" + exit 1 + - name: Run action with valid scannerVersion + uses: ./ + with: + scannerVersion: "7.1.0.4889" + args: -Dsonar.scanner.internal.dumpToFile=./output.properties + env: + NO_CACHE: true + SONAR_HOST_URL: http://not_actually_used + - name: Assert + run: | + ./test/assertFileExists ./output.properties \ No newline at end of file diff --git a/action.yml b/action.yml index fe4ac90..2ba0299 100644 --- a/action.yml +++ b/action.yml @@ -25,6 +25,14 @@ inputs: runs: using: "composite" steps: + - name: Validate Scanner Version input + run: | + SCANNER_VERSION="${{ inputs.scannerVersion }}" + if [[ ! "$SCANNER_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "ERROR: Invalid scannerVersion format. Expected format: x.y.z.w (e.g., 7.1.0.4889)" + exit 1 + fi + shell: bash - name: Sanity checks run: ${GITHUB_ACTION_PATH}/scripts/sanity-checks.sh shell: bash