#!/bin/bash set -e function xargs() { local cmd=$1 shift for arg in "$@"; do $cmd "$arg" done } export -f xargs sonarOpts=(-Dsonar.branch.name="${CI_COMMIT_BRANCH}") if [[ -n "${CI_COMMIT_PULL_REQUEST}" ]]; then sonarOpts=(-Dsonar.pullrequest.key="${CI_COMMIT_PULL_REQUEST}" -Dsonar.pullrequest.branch="${CI_COMMIT_SOURCE_BRANCH}" -Dsonar.pullrequest.base="${CI_COMMIT_TARGET_BRANCH}") fi version= if [[ -f "package.json" ]]; then version=$(awk -F'"' '/"version": ".+"/ { print $4; exit; }' package.json) elif [[ -f "Cargo.toml" ]]; then version=$(awk -F'"' '/^version =/ { print $2; exit; }' Cargo.toml) elif [[ -d "gradle" ]]; then version=$(./gradlew --gradle-user-home /tmp/.gradle --project-cache-dir /tmp/.cachegradle properties -PbuildDir=/tmp/.buildgradle -q | awk '/^version:/ {print $2}') fi sonarOpts+=(-Dsonar.projectVersion="${version}") set -x sonar-scanner -Dsonar.working.directory=/tmp/.scannerwork -Dsonar.qualitygate.wait=true "${sonarOpts[@]}" || true