GitLab CI/CD интеграци
GitLab дээрх project-оо SonarQube-тэй холбох, CI/CD pipeline-д SonarQube анализыг нэгтгэх
- GitLab дээрх project (repository)
- SonarQube server эсвэл cloud дээрх хандалт
- GitLab CI/CD pipeline ажиллуулах эрх
- SonarQube дээр project үүссэн байх (Эндээс харна уу)
1. SonarQube Token үүсгэх
SonarQube-д код илгээхэд token шаардлагатай.
- SonarQube-д нэвтэрнэ
- Анализ хийх project-оо сонгоно
- "How do you want to analyze your repository?" дотор "With GitLab CI" сонгоно

- "Analyze your project with GitLab CI" хуудас харагдана
2. Environment Variables тохируулах
GitLab-д SonarQube-тай холбогдоход шаардлагатай хувьсагчдыг тохируулна.
2.1. SONAR_TOKEN нэмэх
- GitLab дээр өөрийн project руу орно
- Settings > CI/CD > Variables руу орно
- "Add Variable" дарж дараах утгуудыг оруулна:
- Key:
SONAR_TOKEN - Value: SonarQube-с үүсгэсэн token
- Token үүсээгүй бол Generate Token товчийг дарна
- Token name автоматаар үүснэ (хэрэв хүсвэл өөрчилж болно — гэхдээ шаардлагагүй)
- Expires in утгыг No expiration гэж сонгоно
- Protect Variable: Checkbox-г идэвхгүй үлдээнэ
- Mask Variable: Checkbox-г идэвхжүүлнэ (нууцлалын үүднээс)
- Key:
2.2. SONAR_HOST_URL нэмэх
Мөн адилхан Variables хэсэгт дахин "Add Variable" дарж:
- Key:
SONAR_HOST_URL - Value:
https://sonarqube.techpartners.asia - Protect Variable: Checkbox-г идэвхгүй үлдээнэ
- Mask Variable: Checkbox-г идэвхгүй болгоно
Дараах байдлаар нэмэгдэнэ:

3. Project төрөл сонгох
SonarQube дээр "What option best describes your project?" гэсэн сонголт гарч ирнэ. Өөрийн project-ийн төрлийг сонгоно:
- Maven - Java Maven project
- Gradle - Java/Kotlin Gradle project
- JS/TS & Web - JavaScript, TypeScript, HTML, CSS project
- .NET - C#, VB.NET, F# project
- Python - Python application
- Other - Go, PHP, C, C++ болон бусад хэл
Сонголтоо зөв хийх нь анализын үр дүнд нөлөөлнө. Өөрийн project-д хамгийн тохирсон төрлийг сонгоно уу.
4. Тохиргооны файлууд үүсгэх
4.1. sonar-project.properties файл үүсгэх
Project-ийн root folder-д sonar-project.properties нэртэй файл үүсгэж, дараах агуулгыг оруулна:
sonar.projectKey=test-sonar
sonar.qualitygate.wait=true
sonar.projectKey утгыг өөрийн SonarQube дээрх project key-тэй ижилхэн тохируулна.
4.2. .gitlab-ci.yml файл үүсгэх эсвэл шинэчлэх
Project-ийн root folder-д .gitlab-ci.yml файл үүсгэж эсвэл байгаа файлдаа дараах SonarQube stage-ийг нэмнэ:
image:
name: sonarsource/sonar-scanner-cli:11
entrypoint: [""]
variables:
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Analysis task cache-ийн байршил
GIT_DEPTH: "0"
stages:
- build-sonar
build-sonar:
stage: build-sonar
cache:
policy: pull-push
key: "sonar-cache-$CI_COMMIT_REF_SLUG"
paths:
- "${SONAR_USER_HOME}/cache"
- sonar-scanner/
script:
- sonar-scanner -Dsonar.host.url="${SONAR_HOST_URL}"
allow_failure: false # Алдаатай үед pipeline зогсоно
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
- if: $CI_COMMIT_BRANCH == 'master'
- if: $CI_COMMIT_BRANCH == 'main'
- if: $CI_COMMIT_BRANCH == 'develop'
Энэ stage-ийг project-ийн хамгийн эхний stage дээр байрлуулна. Үүний дараа build, test, deploy stage-уудыг үргэлжлүүлэн хийхэд зохистой.
5. Pipeline ажиллуулах
Тохиргоо дууссаны дараа:
- Файлуудаа commit & push хийнэ
- GitLab CI/CD pipeline автоматаар ажиллана
- Pipeline амжилттай дууссаны дараа SonarQube дээр анализын үр дүнг харна
Pipeline хэзээ ажиллах вэ?
Дээрх тохиргооны дагуу pipeline дараах тохиолдолд ажиллана:
- Merge Request үүсгэх үед
master,main, эсвэлdevelopbranch-д push хийх үед
6. Анализын үр дүн шалгах
- SonarQube dashboard руу орно
- Өөрийн project-ийг сонгоно
- Code quality, security vulnerabilities, code smells зэрэг мэдээллийг харна
Дараах байдлаар харагдана:

Энэ нь үндсэн тохиргоо бөгөөд өөрийн project-ийн төрөл (Maven, Gradle, .NET гэх мэт)-д тохируулан нэмэлт тохиргоо хийх шаардлагатай байж болно.
7. Асуудал шийдвэрлэх
Хэрэв pipeline ажиллахгүй эсвэл алдаа гарвал:
- Token шалгах: GitLab Variables дээр
SONAR_TOKENзөв тохируулагдсан эсэхийг шалгана - Project key шалгах:
sonar-project.propertiesфайл дахьsonar.projectKeySonarQube дээрх project key-тэй ижил эсэхийг шалгана - Pipeline лог шалгах: GitLab CI/CD > Pipelines дээр алдааны мэдээллийг харна
Нэмэлт тохиргоо
Хэрэв танд аль хэдийн ажиллаж байгаа .gitlab-ci.yml файл байгаа бол дээрх build-sonar stage-ийг өөрийн файлдаа нэмж болно.