docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
fetch issues
curl -s -u ${SONAR_TOKEN}: "http://localhost:9000/api/issues/search?componentKeys=${PROJECTNAME}" | jq
general
curl -s -u ${SONAR_TOKEN}: "http://localhost:9000/api/measures/component?component=${COMPONENT}&metricKeys=ncloc,complexity,violations,code_smells,sqale_rating,alert_status,bugs,reliability_rating,security_rating,coverage,lines_to_cover,tests" | jq
helm repo add sonatype https://sonatype.github.io/helm3-charts/
https://github.com/vaulttec/sonar-auth-oidc
sudo apt update
sudo apt install openjdk-11-jdk -y
sudo apt install postgresql postgresql-contrib
sudo -u postgres psql -c "CREATE USER sonarqube WITH PASSWORD 'Password';"
sudo -u postgres psql -c "CREATE DATABASE sonarqube OWNER sonarqube;"
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;"
sudo useradd -b /opt/sonarqube -s /bin/bash sonarqube
cat <<EOF | sudo tee -a /etc/sysctl.conf
vm.max_map_count=524288
fs.file-max=131072
EOF
sudo sysctl --system
cat <<EOF | sudo tee -a /etc/security/limits.d/99-sonarqube.conf
sonarqube - nofile 131072
sonarqube - nproc 8192
EOF
sudo apt install unzip software-properties-common wget -y
wget -q https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.0.65466.zip -O /tmp/sonarqube-9.9.0.65466.zip
sudo unzip /tmp/sonarqube-9.9.0.65466.zip -d /opt
sudo mv /opt/sonarqube-9.9.0.65466 /opt/sonarqube
sudo chown -R sonarqube:sonarqube /opt/sonarqube
cat <<EOF | sudo tee -a /opt/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonarqube
sonar.jdbc.password=Password
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
sonar.search.javaOpts=-Xmx512m -Xms512m -XX:MaxDirectMemorySize=256m -XX:+HeapDumpOnOutOfMemoryError
sonar.web.host=127.0.0.1
sonar.web.port=9000
sonar.web.javaAdditionalOpts=-server
sonar.log.level=INFO
sonar.path.logs=logs
sonar.core.serverBaseURL=https://sonar.46.51.148.69.nip.io
EOF
cat <<EOF | sudo tee -a /etc/systemd/system/sonarqube.service
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
User=sonarqube
Group=sonarqube
Restart=always
LimitNOFILE=131072
LimitNPROC=8192
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now sonarqube.service
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
It will use SonarQube servers from JENKINS_URL/Manage Jenkins/Configure System
withSonarQubeEnv('My SonarQube Server')
def scannerHome = tool 'SonarQube Scanner 4.8.0.2856';
withSonarQubeEnv() {
sh "${scannerHome}/bin/sonar-scanner
}
cat <<EOF | tee -a > sonar-project.properties
sonar.projectKey=0.0.1
sonar.java.source=17
sonar.projectName=XXXX
sonar.host.url=https://localhost.nip.io
sonar.login=XXXX
sonar.sources=Api/src/main
EOF
export JAVA_HOME=/home/ubuntu/tools/hudson.model.JDK/amazon-corretto-17/amazon-corretto-17.0.6.10.1-linux-x64
export M2_HOME=/home/ubuntu/tools/hudson.tasks.Maven_MavenInstallation/maven-3.8.4
export MAVEN_HOME=/home/ubuntu/tools/hudson.tasks.Maven_MavenInstallation/maven-3.8.4
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH