add sonarqube configuration & README.md && additionally improving gitlab configuration
parent
786cf3a97d
commit
73d60721e5
|
|
@ -0,0 +1,66 @@
|
||||||
|
# Sonarqube Configuration
|
||||||
|
|
||||||
|
## Setup Sonarqube
|
||||||
|
|
||||||
|
before first run, change permissions on sonarqube volumes dirs from root to 1000:
|
||||||
|
```bash
|
||||||
|
sudo chown 1000:1000 -R ./volumes/sonarqube
|
||||||
|
```
|
||||||
|
|
||||||
|
before start sonarqube vm.max_map_count must be changed on your host:
|
||||||
|
```bash
|
||||||
|
sudo sysctl -w vm.max_map_count=262144
|
||||||
|
```
|
||||||
|
|
||||||
|
after running, you can login with default credentials (admin:admin)
|
||||||
|
|
||||||
|
## Configure projects
|
||||||
|
|
||||||
|
first step is create access token in gitlab and set it in sonarqube app
|
||||||
|
|
||||||
|
next one is choice of repository, if you did choice, you will saw instruction.
|
||||||
|
|
||||||
|
we must create ```sonar-project.properties``` file in choosen repo:
|
||||||
|
|
||||||
|
```properties
|
||||||
|
sonar.projectKey=<repo_name_and_hash>
|
||||||
|
sonar.qualitygate.wait=true
|
||||||
|
```
|
||||||
|
|
||||||
|
we must define also ```.gitlab-ci.yml``` file in choosen repo:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
sonarqube-check:
|
||||||
|
image:
|
||||||
|
name: sonarsource/sonar-scanner-cli:latest
|
||||||
|
entrypoint: [""]
|
||||||
|
variables:
|
||||||
|
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
|
||||||
|
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
|
||||||
|
cache:
|
||||||
|
key: "${CI_JOB_NAME}"
|
||||||
|
paths:
|
||||||
|
- .sonar/cache
|
||||||
|
script:
|
||||||
|
- |
|
||||||
|
sonar-scanner \
|
||||||
|
-Dsonar.projectKey="${SONAR_REPO_ID}" \
|
||||||
|
-Dsonar.sources=. \
|
||||||
|
-Dsonar.host.url="${SONAR_HOST_URL}" \
|
||||||
|
-Dsonar.login="${SONAR_TOKEN}"
|
||||||
|
allow_failure: true
|
||||||
|
only:
|
||||||
|
- develop
|
||||||
|
```
|
||||||
|
|
||||||
|
last step is define envs in gitlab -> choosen repo -> Settings -> CI/CD -> Variables:
|
||||||
|
|
||||||
|
```env
|
||||||
|
SONAR_REPO_ID=<repo_name_and_hash>
|
||||||
|
SONAR_HOST_URL=http://<sonarqube_url_or_dns>:<sonarqube_shared_port>
|
||||||
|
SONAR_TOKEN=<sonar_token>
|
||||||
|
```
|
||||||
|
|
||||||
|
you can generate ```SONAR_TOKEN``` in Overview -> Locally
|
||||||
|
|
||||||
|
you can get ```SONAR_REPO_ID``` from Overview -> Gitlab-CI in ```sonar-project.properties``` file creating statement
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
version: "3.9"
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
sonarqube:
|
||||||
|
container_name: sonarqube
|
||||||
|
image: sonarqube:9-community
|
||||||
|
ports:
|
||||||
|
- 9000:9000
|
||||||
|
environment:
|
||||||
|
SONARQUBE_JDBC_USERNAME: tbs093a
|
||||||
|
SONARQUBE_JDBC_PASSWORD: aCD32Sfqw
|
||||||
|
SONARQUBE_JDBC_URL: jdbc:postgresql://postgresql:5432/sonar
|
||||||
|
volumes:
|
||||||
|
- ./volumes/sonarqube/data:/opt/sonarqube/data
|
||||||
|
- ./volumes/sonarqube/logs:/opt/sonarqube/logs
|
||||||
|
- ./volumes/sonarqube/extensions:/opt/sonarqube/extensions
|
||||||
|
|
||||||
|
postgresql:
|
||||||
|
container_name: postgresql
|
||||||
|
image: postgres:15.2-alpine
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: tbs093a
|
||||||
|
POSTGRES_PASSWORD: aCD32Sfqw
|
||||||
|
ports:
|
||||||
|
- 5432
|
||||||
|
volumes:
|
||||||
|
- ./volumes/postgresql:/var/lib/postgresql
|
||||||
|
|
||||||
Loading…
Reference in New Issue