mirror of
https://github.com/SonarSource/sonarqube-scan-action.git
synced 2025-12-12 17:31:15 +00:00
351 lines
15 KiB
YAML
351 lines
15 KiB
YAML
name: QA Scripts
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
|
|
jobs:
|
|
create-install-dir-test:
|
|
name: create_install_path.sh
|
|
runs-on: github-ubuntu-latest-s
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
|
|
- name: Existing
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: '.sonar'
|
|
run: |
|
|
echo "- Create dir"
|
|
mkdir -p "${INSTALL_PATH}"
|
|
|
|
echo "- Test script behavior"
|
|
./scripts/create_install_path.sh > output
|
|
grep -v "::error::" output
|
|
|
|
- name: Non-existing nested in current dir
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: '.sonar'
|
|
run: |
|
|
./scripts/create_install_path.sh > output
|
|
grep -v "::error::" output
|
|
test -d "${INSTALL_PATH}"
|
|
|
|
- name: Nonexisting nested in home
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: '~/third_party/.sonar'
|
|
run: |
|
|
./scripts/create_install_path.sh > output
|
|
grep -v "::error::" output
|
|
test -d "${INSTALL_PATH}"
|
|
|
|
- name: Empty install dir specified
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: ''
|
|
run: |
|
|
(./scripts/create_install_path.sh || echo "=== Script failed ===") > output
|
|
grep "::error::Empty installation path specified" output
|
|
grep "=== Script failed ===" output
|
|
|
|
- name: No permission to create directory
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: '/non_creatable'
|
|
run: |
|
|
(./scripts/create_install_path.sh || echo "=== Script failed ===") > output
|
|
grep "::error::Failed to create non-existing installation path '/non_creatable'" output
|
|
grep "=== Script failed ===" output
|
|
|
|
- name: Existing but not directory
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: 'not_directory'
|
|
run: |
|
|
echo "- Create normal file"
|
|
echo "content" > "${INSTALL_PATH}"
|
|
|
|
echo "- Test script behavior"
|
|
(./scripts/create_install_path.sh || echo "=== Script failed ===") > output
|
|
grep "::error::Installation path 'not_directory' is not a directory" output
|
|
grep "=== Script failed ===" output
|
|
|
|
|
|
- name: Existing but not readable
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: 'not_readable'
|
|
run: |
|
|
echo "- Create dir and make it not readable"
|
|
mkdir -p "${INSTALL_PATH}"
|
|
chmod -r "${INSTALL_PATH}"
|
|
|
|
echo "- Test script behavior"
|
|
(./scripts/create_install_path.sh || echo "=== Script failed ===") > output
|
|
grep "::error::Installation path 'not_readable' is not readable" output
|
|
grep "=== Script failed ===" output
|
|
|
|
- name: Existing but not writeable
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: 'not_writeable'
|
|
run: |
|
|
echo "- Create dir and make it not writeable"
|
|
mkdir -p "${INSTALL_PATH}"
|
|
chmod -w "${INSTALL_PATH}"
|
|
|
|
echo "- Test script behavior"
|
|
(./scripts/create_install_path.sh || echo "=== Script failed ===") > output
|
|
grep "::error::Installation path 'not_writeable' is not writeable" output
|
|
grep "=== Script failed ===" output
|
|
setup-script-test:
|
|
name: configure_paths.sh
|
|
runs-on: github-ubuntu-latest-s
|
|
env:
|
|
INSTALL_PATH: 'install-directory'
|
|
SONAR_HOST_URL: 'http://sonar-host.com'
|
|
SONAR_SCANNER_VERSION: 'vX.Y.Z.MMMM'
|
|
SONAR_SCANNER_URL_WINDOWS_X64: 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-windows-x64.zip'
|
|
SONAR_SCANNER_SHA_WINDOWS_X64: 'DOWNLOAD-SHA-WINDOWS-X64'
|
|
SONAR_SCANNER_URL_LINUX_X64: 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-linux-x64.zip'
|
|
SONAR_SCANNER_SHA_LINUX_X64: 'DOWNLOAD-SHA-LINUX-X64'
|
|
SONAR_SCANNER_URL_LINUX_AARCH64: 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-linux-aarch64.zip'
|
|
SONAR_SCANNER_SHA_LINUX_AARCH64: 'DOWNLOAD-SHA-LINUX-AARCH64'
|
|
SONAR_SCANNER_URL_MACOSX_X64: 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-macosx-x64.zip'
|
|
SONAR_SCANNER_SHA_MACOSX_X64: 'DOWNLOAD-SHA-MACOSX-X64'
|
|
SONAR_SCANNER_URL_MACOSX_AARCH64: 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-macosx-aarch64.zip'
|
|
SONAR_SCANNER_SHA_MACOSX_AARCH64: 'DOWNLOAD-SHA-MACOSX-AARCH64'
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
|
|
- name: Windows
|
|
shell: bash
|
|
env:
|
|
OS: 'Windows'
|
|
ARCH: 'X64'
|
|
run: |
|
|
./scripts/configure_paths.sh > output
|
|
grep -v "::error::" output
|
|
|
|
echo "- Check sonar-scanner:"
|
|
grep "sonar-scanner-url=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-windows-x64.zip" output
|
|
grep "sonar-scanner-sha=DOWNLOAD-SHA-WINDOWS-X64" output
|
|
grep "sonar-scanner-dir=install-directory/sonar-scanner-vX.Y.Z.MMMM-windows-x64" output
|
|
grep "sonar-scanner-bin=install-directory/sonar-scanner-vX.Y.Z.MMMM-windows-x64/bin/sonar-scanner.bat" output
|
|
|
|
echo "- Check build-wrapper:"
|
|
grep "build-wrapper-url=http://sonar-host.com/static/cpp/build-wrapper-win-x86.zip" output
|
|
grep "build-wrapper-dir=install-directory/build-wrapper-win-x86" output
|
|
grep "build-wrapper-bin=install-directory/build-wrapper-win-x86/build-wrapper-win-x86-64.exe" output
|
|
|
|
- name: Linux X64
|
|
shell: bash
|
|
env:
|
|
OS: 'Linux'
|
|
ARCH: 'X64'
|
|
run: |
|
|
./scripts/configure_paths.sh > output
|
|
grep -v "::error::" output
|
|
|
|
echo "- Check sonar-scanner:"
|
|
grep "sonar-scanner-url=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-linux-x64.zip" output
|
|
grep "sonar-scanner-sha=DOWNLOAD-SHA-LINUX-X64" output
|
|
grep "sonar-scanner-dir=install-directory/sonar-scanner-vX.Y.Z.MMMM-linux-x64" output
|
|
grep "sonar-scanner-bin=install-directory/sonar-scanner-vX.Y.Z.MMMM-linux-x64/bin/sonar-scanner" output
|
|
|
|
echo "- Check build-wrapper:"
|
|
grep "build-wrapper-url=http://sonar-host.com/static/cpp/build-wrapper-linux-x86.zip" output
|
|
grep "build-wrapper-dir=install-directory/build-wrapper-linux-x86" output
|
|
grep "build-wrapper-bin=install-directory/build-wrapper-linux-x86/build-wrapper-linux-x86-64" output
|
|
|
|
- name: Linux ARM64
|
|
shell: bash
|
|
env:
|
|
OS: 'Linux'
|
|
ARCH: 'ARM64'
|
|
run: |
|
|
./scripts/configure_paths.sh > output
|
|
grep -v "::error::" output
|
|
echo "- Check sonar-scanner:"
|
|
grep "sonar-scanner-url=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-linux-aarch64.zip" output
|
|
grep "sonar-scanner-sha=DOWNLOAD-SHA-LINUX-AARCH64" output
|
|
grep "sonar-scanner-dir=install-directory/sonar-scanner-vX.Y.Z.MMMM-linux-aarch64" output
|
|
grep "sonar-scanner-bin=install-directory/sonar-scanner-vX.Y.Z.MMMM-linux-aarch64/bin/sonar-scanner" output
|
|
echo "- Check build-wrapper:"
|
|
grep "build-wrapper-url=http://sonar-host.com/static/cpp/build-wrapper-linux-aarch64.zip" output
|
|
grep "build-wrapper-dir=install-directory/build-wrapper-linux-aarch64" output
|
|
grep "build-wrapper-bin=install-directory/build-wrapper-linux-aarch64/build-wrapper-linux-aarch64" output
|
|
|
|
- name: macOSX_X64
|
|
shell: bash
|
|
env:
|
|
OS: 'macOS'
|
|
ARCH: 'X64'
|
|
run: |
|
|
./scripts/configure_paths.sh > output
|
|
grep -v "::error::" output
|
|
|
|
echo "- Check sonar-scanner:"
|
|
grep "sonar-scanner-url=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-macosx-x64.zip" output
|
|
grep "sonar-scanner-sha=DOWNLOAD-SHA-MACOSX-X64" output
|
|
grep "sonar-scanner-dir=install-directory/sonar-scanner-vX.Y.Z.MMMM-macosx-x64" output
|
|
grep "sonar-scanner-bin=install-directory/sonar-scanner-vX.Y.Z.MMMM-macosx-x64/bin/sonar-scanner" output
|
|
|
|
echo "- Check build-wrapper:"
|
|
grep "build-wrapper-url=http://sonar-host.com/static/cpp/build-wrapper-macosx-x86.zip" output
|
|
grep "build-wrapper-dir=install-directory/build-wrapper-macosx-x86" output
|
|
grep "build-wrapper-bin=install-directory/build-wrapper-macosx-x86/build-wrapper-macosx-x86" output
|
|
|
|
- name: macOSX_ARM64
|
|
shell: bash
|
|
env:
|
|
OS: 'macOS'
|
|
ARCH: 'ARM64'
|
|
run: |
|
|
./scripts/configure_paths.sh > output
|
|
grep -v "::error::" output
|
|
|
|
echo "- Check sonar-scanner:"
|
|
grep "sonar-scanner-url=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-vX.Y.Z.MMMM-macosx-aarch64.zip" output
|
|
grep "sonar-scanner-sha=DOWNLOAD-SHA-MACOSX-AARCH64" output
|
|
grep "sonar-scanner-dir=install-directory/sonar-scanner-vX.Y.Z.MMMM-macosx-aarch64" output
|
|
grep "sonar-scanner-bin=install-directory/sonar-scanner-vX.Y.Z.MMMM-macosx-aarch64/bin/sonar-scanner" output
|
|
|
|
echo "- Check build-wrapper:"
|
|
grep "build-wrapper-url=http://sonar-host.com/static/cpp/build-wrapper-macosx-x86.zip" output
|
|
grep "build-wrapper-dir=install-directory/build-wrapper-macosx-x86" output
|
|
grep "build-wrapper-bin=install-directory/build-wrapper-macosx-x86/build-wrapper-macosx-x86" output
|
|
|
|
- name: Unsupported OS
|
|
shell: bash
|
|
env:
|
|
OS: 'unsupportedOS'
|
|
ARCH: 'X64'
|
|
run: |
|
|
(./scripts/configure_paths.sh || echo "=== Script failed ===") > output
|
|
|
|
echo "- Check errors:"
|
|
grep "::error::Unsupported runner OS 'unsupportedOS'" output
|
|
grep "=== Script failed ===" output
|
|
|
|
- name: Unsupported architecture
|
|
shell: bash
|
|
env:
|
|
OS: 'Linux'
|
|
ARCH: 'X86'
|
|
run: |
|
|
(./scripts/configure_paths.sh || echo "=== Script failed ===") > output
|
|
|
|
echo "- Check errors:"
|
|
grep "::error::Architecture 'X86' is unsupported by build-wrapper" output
|
|
grep "=== Script failed ===" output
|
|
download-script-test:
|
|
name: download.sh
|
|
runs-on: github-ubuntu-latest-s
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
|
|
- name: Download test without validation
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: 'install-directory-no-sha-validation'
|
|
DOWNLOAD_URL: 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip'
|
|
EXPECTED_SHA: 'incorrect-sha-not-validated'
|
|
TMP_ZIP_PATH: ${{ runner.temp }}/sonar-scanner.zip
|
|
run: |
|
|
./scripts/download.sh > output
|
|
test -f "$TMP_ZIP_PATH"
|
|
grep -v "::error::" output
|
|
- name: Download test with validation
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: 'install-directory-sha-validation'
|
|
DOWNLOAD_URL: 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip'
|
|
EXPECTED_SHA: '9411331814c1d002bd65d37758b872918b7602e7cf3ca5b83a3e19a729b2be05'
|
|
TMP_ZIP_PATH: ${{ runner.temp }}/sonar-scanner.zip
|
|
run: |
|
|
./scripts/download.sh -v > output
|
|
test -f "$TMP_ZIP_PATH"
|
|
grep -v "::error::" output
|
|
- name: Incorrect install dir
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: ''
|
|
run: |
|
|
(./scripts/download.sh || echo "=== Script failed ===") > output
|
|
grep "::error::Failed to create" output
|
|
grep "=== Script failed ===" output
|
|
- name: Incorrect download url
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: 'install-directory-incorrect-url'
|
|
DOWNLOAD_URL: 'incorrect-url'
|
|
run: |
|
|
(./scripts/download.sh || echo "=== Script failed ===") > output
|
|
grep "::error::Failed to download 'incorrect-url'" output
|
|
grep "=== Script failed ===" output
|
|
- name: Incorrect SHA256
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: 'install-directory-incorrect-sha'
|
|
DOWNLOAD_URL: 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip'
|
|
EXPECTED_SHA: 'incorrect-sha256'
|
|
TMP_ZIP_PATH: ${{ runner.temp }}/sonar-scanner.zip
|
|
run: |
|
|
(./scripts/download.sh -v || echo "=== Script failed ===") > output
|
|
grep "::error::Checking sha256 failed" output
|
|
grep "=== Script failed ===" output
|
|
- name: Mismatching SHA256
|
|
shell: bash
|
|
env:
|
|
INSTALL_PATH: 'install-directory-mismtaching-sha'
|
|
DOWNLOAD_URL: 'https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip'
|
|
EXPECTED_SHA: '3e121d85a4adb1f30b917d5f3eb897966b59e02c3d6d313a78dcd964193dc963'
|
|
TMP_ZIP_PATH: ${{ runner.temp }}/sonar-scanner.zip
|
|
run: |
|
|
(./scripts/download.sh -v || echo "=== Script failed ===") > output
|
|
grep "::error::Checking sha256 failed" output
|
|
grep "=== Script failed ===" output
|
|
fetch-latest-version-test:
|
|
name: fetch_latest_version.sh
|
|
runs-on: github-ubuntu-latest-s
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
- name: Test script
|
|
shell: bash
|
|
run: |
|
|
./scripts/fetch_latest_version.sh > output
|
|
|
|
echo "- Check sonar-scanner version:"
|
|
grep "sonar-scanner-version=" output
|
|
SONAR_SCANNER_VERSION=$(cat output | cut -d= -f 2)
|
|
test ! -z "${SONAR_SCANNER_VERSION}"
|
|
|
|
echo "- Check windows sonar-scanner URLs:"
|
|
grep "sonar-scanner-url-windows-x64=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}-windows-x64.zip" output
|
|
grep -e "^sonar-scanner-sha-windows-x64=[0-9A-Fa-f]\+$" output
|
|
|
|
echo "- Check linux sonar-scanner URLs:"
|
|
grep "sonar-scanner-url-linux-x64=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}-linux-x64.zip" output
|
|
grep -e "^sonar-scanner-sha-linux-x64=[0-9A-Fa-f]\+$" output
|
|
grep "sonar-scanner-url-linux-aarch64=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}-linux-aarch64.zip" output
|
|
grep -e "^sonar-scanner-sha-linux-aarch64=[0-9A-Fa-f]\+$" output
|
|
|
|
echo "- Check macosx sonar-scanner URLs:"
|
|
grep "sonar-scanner-url-linux-x64=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}-linux-x64.zip" output
|
|
grep -e "^sonar-scanner-sha-linux-x64=[0-9A-Fa-f]\+$" output
|
|
grep "sonar-scanner-url-linux-aarch64=https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${SONAR_SCANNER_VERSION}-linux-aarch64.zip" output
|
|
grep -e "^sonar-scanner-sha-linux-aarch64=[0-9A-Fa-f]\+$" output
|