From ac82e3f255142a3844aedc3822ccc2859dcc1ede Mon Sep 17 00:00:00 2001 From: Antonio Aversa Date: Wed, 11 Dec 2024 12:09:25 +0100 Subject: [PATCH] SQCPPGHA-9 Rebranding and forwarding to sonarqube-scan-action/deprecated-c-cpp-action --- .github/workflows/version_update.yml | 51 ------------- action.yml | 103 +++------------------------ scripts/cert.sh | 8 --- scripts/configure_paths.sh | 71 ------------------ scripts/create_install_path.sh | 26 ------- scripts/download.sh | 58 --------------- scripts/fetch_latest_version.sh | 25 ------- scripts/utils.sh | 25 ------- sonar-scanner-version | 11 --- 9 files changed, 11 insertions(+), 367 deletions(-) delete mode 100644 .github/workflows/version_update.yml delete mode 100755 scripts/cert.sh delete mode 100755 scripts/configure_paths.sh delete mode 100755 scripts/create_install_path.sh delete mode 100755 scripts/download.sh delete mode 100755 scripts/fetch_latest_version.sh delete mode 100755 scripts/utils.sh delete mode 100644 sonar-scanner-version diff --git a/.github/workflows/version_update.yml b/.github/workflows/version_update.yml deleted file mode 100644 index f028f3c..0000000 --- a/.github/workflows/version_update.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: sonar-scanner version check -on: - workflow_dispatch: - schedule: - - cron: '15 10 * * *' - -jobs: - update-version: - name: Prepare pull request for sonar-scanner version update - runs-on: ubuntu-latest - steps: - - run: sudo apt install -y jq - - - uses: actions/checkout@v4 - with: - ref: master - persist-credentials: true - fetch-depth: 0 - - - name: "Fetch currently used sonar-scanner version" - id: tagged-version - shell: bash - run: cat sonar-scanner-version >> $GITHUB_OUTPUT - - - name: "Fetch lastest sonar-scanner version" - id: latest-version - shell: bash - run: | - ./scripts/fetch_latest_version.sh > sonar-scanner-version - cat sonar-scanner-version >> $GITHUB_OUTPUT - - - name: "Create Pull Request for version update" - if: steps.tagged-version.outputs.sonar-scanner-version != steps.latest-version.outputs.sonar-scanner-version - shell: bash - env: - UPDATE_BRANCH: update-to-sonar-scanner-${{ steps.latest-version.outputs.sonar-scanner-version }} - TITLE: "Update sonar-scanner-version to ${{ steps.latest-version.outputs.sonar-scanner-version }}" - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - git config --global user.name "SonarTech" - git config --global user.email "sonartech@sonarsource.com" - git checkout -b ${UPDATE_BRANCH} - git add sonar-scanner-version - git commit -m "${TITLE}" - git push --force-with-lease origin ${UPDATE_BRANCH} - gh pr list - - if [[ $(gh pr list -H "${UPDATE_BRANCH}" | grep "${UPDATE_BRANCH}" | wc -l) -eq 0 ]]; then - gh pr create -B master -H ${UPDATE_BRANCH} --title "${TITLE}" --body "Automatic updated of sonar-scanner version value. Needs to be tagged for release." - fi - diff --git a/action.yml b/action.yml index e24d545..e0f2705 100644 --- a/action.yml +++ b/action.yml @@ -24,104 +24,23 @@ outputs: runs: using: "composite" steps: - # install packaged required for greadlink and sha256sum command on macOS - - name: Install required packages for macOS - if: runner.os == 'macOS' - shell: bash - run: brew install coreutils - - - name: Verify and create installation path - shell: bash - env: - INSTALL_PATH: ${{ inputs.installation-path }} - run: ${GITHUB_ACTION_PATH}/scripts/create_install_path.sh - - - name: Set version of sonar-scanner - id: sonar-scanner-version - shell: bash - run: cat ${GITHUB_ACTION_PATH}/sonar-scanner-version >> $GITHUB_OUTPUT - - - name: Configure paths - id: configure_paths - shell: bash - env: - OS: ${{ runner.os }} - ARCH: ${{ runner.arch }} - INSTALL_PATH: ${{ inputs.installation-path }} - SONAR_SCANNER_VERSION: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-version }} - SONAR_SCANNER_URL_WINDOWS_X64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-url-windows-x64 }} - SONAR_SCANNER_SHA_WINDOWS_X64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-sha-windows-x64 }} - SONAR_SCANNER_URL_LINUX_X64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-url-linux-x64 }} - SONAR_SCANNER_SHA_LINUX_X64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-sha-linux-x64 }} - SONAR_SCANNER_URL_LINUX_AARCH64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-url-linux-aarch64 }} - SONAR_SCANNER_SHA_LINUX_AARCH64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-sha-linux-aarch64 }} - SONAR_SCANNER_URL_MACOSX_X64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-url-macosx-x64 }} - SONAR_SCANNER_SHA_MACOSX_X64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-sha-macosx-x64 }} - SONAR_SCANNER_URL_MACOSX_AARCH64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-url-macosx-aarch64 }} - SONAR_SCANNER_SHA_MACOSX_AARCH64: ${{ steps.sonar-scanner-version.outputs.sonar-scanner-sha-macosx-aarch64 }} - run: ${GITHUB_ACTION_PATH}/scripts/configure_paths.sh >> $GITHUB_OUTPUT - - - name: Cache sonar-scanner installation - id: cache-sonar-tools - if: inputs.cache-binaries == 'true' - uses: actions/cache@v4 - env: - # The default value is 60mins. Reaching timeout is treated the same as a cache miss. - SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1 + - name: SonarQube Scan + id: scan + uses: sonarsource/sonarqube-scan-action/deprecated-c-cpp-action@antonio/SQCPPGHA-9-rebranding-and-forward with: - key: sonar-scanner-${{ runner.os }}-${{ runner.arch }}-${{ steps.sonar-scanner-version.outputs.sonar-scanner-version }} - path: ${{ steps.configure_paths.outputs.sonar-scanner-dir }} - - - name: Download and install sonar-scanner - if: steps.cache-sonar-tools.outputs.cache-hit != 'true' - shell: bash - env: - DOWNLOAD_URL: ${{ steps.configure_paths.outputs.sonar-scanner-url }} - EXPECTED_SHA: ${{ steps.configure_paths.outputs.sonar-scanner-sha }} - INSTALL_PATH: ${{ inputs.installation-path }} - TMP_ZIP_PATH: ${{ runner.temp }}/sonar-scanner.zip - run: ${GITHUB_ACTION_PATH}/scripts/download.sh -v - - - name: Add the custom root certificate to java certificate store - shell: bash - run: ${GITHUB_ACTION_PATH}/scripts/cert.sh - - - name: Download and install build-wrapper - shell: bash - env: - DOWNLOAD_URL: ${{ steps.configure_paths.outputs.build-wrapper-url }} - INSTALL_PATH: ${{ inputs.installation-path }} - TMP_ZIP_PATH: ${{ runner.temp }}/build-wrapper.zip - run: ${GITHUB_ACTION_PATH}/scripts/download.sh - + installation-path: ${{ inputs.installation-path }} + cache-binaries: ${{ inputs.cache-binaries }} - name: Setup action outputs id: setup-outputs shell: bash env: - SONAR_SCANNER_DIR: ${{ steps.configure_paths.outputs.sonar-scanner-dir }} - SONAR_SCANNER_BIN: ${{ steps.configure_paths.outputs.sonar-scanner-bin }} - BUILD_WRAPPER_DIR: ${{ steps.configure_paths.outputs.build-wrapper-dir }} - BUILD_WRAPPER_BIN: ${{ steps.configure_paths.outputs.build-wrapper-bin }} + SONAR_SCANNER_BINARY: ${{ steps.scan.outputs.sonar-scanner-binary }} + BUILD_WRAPPER_BINARY: ${{ steps.scan.outputs.build-wrapper-binary }} run: | - source ${GITHUB_ACTION_PATH}/scripts/utils.sh - echo "::group::Action outputs" - echo "SONAR_HOST_URL=${SONAR_HOST_URL}" >> $GITHUB_ENV - echo "'SONAR_HOST_URL' environment variable set to '${SONAR_HOST_URL}'" - - SONAR_SCANNER_BIN_DIR=$(realpath "${SONAR_SCANNER_DIR}/bin") - echo "${SONAR_SCANNER_BIN_DIR}" >> $GITHUB_PATH - echo "'${SONAR_SCANNER_BIN_DIR}' added to the path" - - SONAR_SCANNER_BIN=$(realpath "${SONAR_SCANNER_BIN}") - echo "sonar-scanner-binary=${SONAR_SCANNER_BIN}" >> $GITHUB_OUTPUT - echo "'sonar-scanner-binary' output set to '${SONAR_SCANNER_BIN}'" - - BUILD_WRAPPER_BIN_DIR=$(realpath "${BUILD_WRAPPER_DIR}") - echo "${BUILD_WRAPPER_BIN_DIR}" >> $GITHUB_PATH - echo "'${BUILD_WRAPPER_BIN_DIR}' added to the path" + echo "sonar-scanner-binary=${SONAR_SCANNER_BINARY}" >> $GITHUB_OUTPUT + echo "'sonar-scanner-binary' output set to '${SONAR_SCANNER_BINARY}'" - BUILD_WRAPPER_BIN=$(realpath "${BUILD_WRAPPER_BIN}") - echo "build-wrapper-binary=${BUILD_WRAPPER_BIN}" >> $GITHUB_OUTPUT - echo "'build-wrapper-binary' output set to '${BUILD_WRAPPER_BIN}'" + echo "build-wrapper-binary=${BUILD_WRAPPER_BINARY}" >> $GITHUB_OUTPUT + echo "'build-wrapper-binary' output set to '${BUILD_WRAPPER_BINARY}'" echo "::endgroup::" diff --git a/scripts/cert.sh b/scripts/cert.sh deleted file mode 100755 index 2c2a2a5..0000000 --- a/scripts/cert.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -if [[ -n "${SONAR_ROOT_CERT}" ]]; then - echo "Adding custom root certificate to java certificate store" - rm -f /tmp/tmpcert.pem - echo "${SONAR_ROOT_CERT}" > /tmp/tmpcert.pem - keytool -keystore /etc/ssl/certs/java/cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias sonarqube -file /tmp/tmpcert.pem -fi diff --git a/scripts/configure_paths.sh b/scripts/configure_paths.sh deleted file mode 100755 index d1bbfe1..0000000 --- a/scripts/configure_paths.sh +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -if [[ ${ARCH} != "X64" && ! (${ARCH} == "ARM64" && (${OS} == "macOS" || ${OS} == "Linux")) ]]; then - echo "::error::Architecture '${ARCH}' is unsupported by build-wrapper" - exit 1 -fi - -case ${OS} in - Windows) - SONAR_SCANNER_SUFFIX="windows-x64" - BUILD_WRAPPER_SUFFIX="win-x86" - SONAR_SCANNER_NAME="sonar-scanner.bat" - BUILD_WRAPPER_NAME="build-wrapper-win-x86-64.exe" - SONAR_SCANNER_URL="${SONAR_SCANNER_URL_WINDOWS_X64}" - SONAR_SCANNER_SHA="${SONAR_SCANNER_SHA_WINDOWS_X64}" - ;; - Linux) - case ${ARCH} in - X64) - SONAR_SCANNER_SUFFIX="linux-x64" - BUILD_WRAPPER_SUFFIX="linux-x86" - BUILD_WRAPPER_NAME="build-wrapper-linux-x86-64" - SONAR_SCANNER_URL="${SONAR_SCANNER_URL_LINUX_X64}" - SONAR_SCANNER_SHA="${SONAR_SCANNER_SHA_LINUX_X64}" - ;; - ARM64) - SONAR_SCANNER_SUFFIX="linux-aarch64" - BUILD_WRAPPER_SUFFIX="linux-aarch64" - BUILD_WRAPPER_NAME="build-wrapper-linux-aarch64" - SONAR_SCANNER_URL="${SONAR_SCANNER_URL_LINUX_AARCH64}" - SONAR_SCANNER_SHA="${SONAR_SCANNER_SHA_LINUX_AARCH64}" - ;; - esac - SONAR_SCANNER_NAME="sonar-scanner" - ;; - macOS) - case ${ARCH} in - X64) - SONAR_SCANNER_SUFFIX="macosx-x64" - SONAR_SCANNER_URL="${SONAR_SCANNER_URL_MACOSX_X64}" - SONAR_SCANNER_SHA="${SONAR_SCANNER_SHA_MACOSX_X64}" - ;; - ARM64) - SONAR_SCANNER_SUFFIX="macosx-aarch64" - SONAR_SCANNER_URL="${SONAR_SCANNER_URL_MACOSX_AARCH64}" - SONAR_SCANNER_SHA="${SONAR_SCANNER_SHA_MACOSX_AARCH64}" - ;; - esac - BUILD_WRAPPER_SUFFIX="macosx-x86" - SONAR_SCANNER_NAME="sonar-scanner" - BUILD_WRAPPER_NAME="build-wrapper-macosx-x86" - ;; - *) - echo "::error::Unsupported runner OS '${OS}'" - exit 1 - ;; -esac - - -echo "sonar-scanner-url=${SONAR_SCANNER_URL}" -echo "sonar-scanner-sha=${SONAR_SCANNER_SHA}" - -SONAR_SCANNER_DIR="${INSTALL_PATH}/sonar-scanner-${SONAR_SCANNER_VERSION}-${SONAR_SCANNER_SUFFIX}" -echo "sonar-scanner-dir=${SONAR_SCANNER_DIR}" -echo "sonar-scanner-bin=${SONAR_SCANNER_DIR}/bin/${SONAR_SCANNER_NAME}" - -BUILD_WRAPPER_DIR="${INSTALL_PATH}/build-wrapper-${BUILD_WRAPPER_SUFFIX}" -echo "build-wrapper-url=${SONAR_HOST_URL%/}/static/cpp/build-wrapper-${BUILD_WRAPPER_SUFFIX}.zip" -echo "build-wrapper-dir=${BUILD_WRAPPER_DIR}" -echo "build-wrapper-bin=${BUILD_WRAPPER_DIR}/${BUILD_WRAPPER_NAME}" - diff --git a/scripts/create_install_path.sh b/scripts/create_install_path.sh deleted file mode 100755 index 7e35571..0000000 --- a/scripts/create_install_path.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -source "$(dirname -- "$0")/utils.sh" - -echo "Installation path is '${INSTALL_PATH}'" - -test ! -z "${INSTALL_PATH}" -check_status "Empty installation path specified" - -if [[ ! -e "${INSTALL_PATH}" ]]; then - mkdir -p "${INSTALL_PATH}" - check_status "Failed to create non-existing installation path '${INSTALL_PATH}'" -fi - -ABSOLUTE_INSTALL_PATH=$(realpath "${INSTALL_PATH}") -echo "Absolute installation path is '${ABSOLUTE_INSTALL_PATH}'" - -test -d "${INSTALL_PATH}" -check_status "Installation path '${INSTALL_PATH}' is not a directory (absolute path is '${ABSOLUTE_INSTALL_PATH}')" - -test -r "${INSTALL_PATH}" -check_status "Installation path '${INSTALL_PATH}' is not readable (absolute path is '${ABSOLUTE_INSTALL_PATH}')" - -test -w "${INSTALL_PATH}" -check_status "Installation path '${INSTALL_PATH}' is not writeable (absolute path is '${ABSOLUTE_INSTALL_PATH}')" - diff --git a/scripts/download.sh b/scripts/download.sh deleted file mode 100755 index 9e1aefa..0000000 --- a/scripts/download.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash - -source "$(dirname -- "$0")/utils.sh" - -VERIFY_CORRECTNESS=false - -help() { - cat <