12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #! /usr/bin/env bash
- #
- # Licensed to the Apache Software Foundation (ASF) under one
- # or more contributor license agreements. See the NOTICE file
- # distributed with this work for additional information
- # regarding copyright ownership. The ASF licenses this file
- # to you under the Apache License, Version 2.0 (the
- # "License"); you may not use this file except in compliance
- # with the License. You may obtain a copy of the License at
- #
- # https://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing,
- # software distributed under the License is distributed on an
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- # KIND, either express or implied. See the License for the
- # specific language governing permissions and limitations
- # under the License.
- #
- usage() {
- echo
- echo "options:"
- echo "-h Display help"
- echo "-u SonarQube Host URL"
- echo "-l SonarQube Login Credentials"
- echo "-k SonarQube Project Key"
- echo "-n SonarQube Project Name"
- echo
- echo "Important:"
- echo " The required parameters for publishing the coverage results to SonarQube:"
- echo " - Host URL"
- echo " - Login Credentials"
- echo " - Project Key"
- echo
- }
- execute() {
- SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
- MAIN_POM="$SCRIPT_DIR/../../pom.xml"
- mvn -B -e -Pclover -f "$MAIN_POM" clean install -DskipTests -DskipShade
- mvn -B -e -Pclover -f "$MAIN_POM" test -Dparallel-tests -DtestsThreadCount=8 -Dscale
- mvn -B -e -Pclover -f "$MAIN_POM" clover:aggregate clover:clover
- # If the required parameters are given, the code coverage results are uploaded to the SonarQube Server
- if [[ -n $SONAR_LOGIN ]] && [[ -n $SONAR_PROJECT_KEY ]] && [[ -n $SONAR_URL ]]; then
- mvn -B -e -Pclover -f "$MAIN_POM" sonar:sonar -Dsonar.clover.reportPath=./target/clover/clover.xml \
- -Dsonar.host.url="$SONAR_URL" -Dsonar.login="$SONAR_LOGIN" -Dsonar.projectKey="$SONAR_PROJECT_KEY" -Dsonar.projectName="$SONAR_PROJECT_NAME"
- fi
- }
- while getopts ":u:l:k:n:h" option; do
- case $option in
- u) SONAR_URL=${OPTARG:-} ;;
- l) SONAR_LOGIN=${OPTARG:-} ;;
- k) SONAR_PROJECT_KEY=${OPTARG:-} ;;
- n) SONAR_PROJECT_NAME=${OPTARG:-} ;;
- h) # Display usage
- usage
- exit
- ;;
- \?) # Invalid option
- echo "Error: Invalid option"
- exit
- ;;
- esac
- done
- # Start code analysis
- execute
|