• Sonarqube与Gitlab集成


    1、Docker安装Sonarqube

    docker-compose.yml

    1. version: "3"
    2. services:
    3. sonarqube:
    4. image: sonarqube:8.9.7-community
    5. depends_on:
    6. - db
    7. environment:
    8. SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
    9. SONAR_JDBC_USERNAME: sonar
    10. SONAR_JDBC_PASSWORD: sonar
    11. volumes:
    12. - sonarqube_data:/opt/sonarqube/data
    13. - sonarqube_extensions:/opt/sonarqube/extensions
    14. - sonarqube_logs:/opt/sonarqube/logs
    15. ports:
    16. - "9000:9000"
    17. db:
    18. image: postgres:12
    19. environment:
    20. POSTGRES_USER: sonar
    21. POSTGRES_PASSWORD: sonar
    22. volumes:
    23. - postgresql:/var/lib/postgresql
    24. - postgresql_data:/var/lib/postgresql/data
    25. volumes:
    26. sonarqube_data:
    27. sonarqube_extensions:
    28. sonarqube_logs:
    29. postgresql:
    30. postgresql_data:

    2、 调整linux系统配置

    /etc/sysctl.conf

    1. fs.file-max = 6553560
    2. kernel.sem =5010 641280 5010 128
    3. net.core.somaxconn=65535
    4. vm.dirty_background_ratio = 5
    5. vm.dirty_ratio = 10
    6. vm.overcommit_memory=1
    7. vm.max_map_count=262144

     配置生效:sysctl -p

    3、访问http://x.x.x.x:9000/

    默认登录:admin/admin

    4、获取Gitlab Personal Access Token(Edit profile) 

    5、Sonarqube administration 创建Gitlab集成配置(第4步中创建的Access Token)

    6、Sonarqube导入Gitlab项目

     

    7、选择Gitlab中的项目

     

     8、生成Sonarqube Gitlab CI中的环境变量

     

     

     9、根据第8步中的Sonarqube信息,配置Gitlab项目中的变量。

     

     10、根据Sonarqube信息,配置Gitlab项目.gitlab-ci.yml文件

     

    1. sonarqube-check:
    2. image: gradle:jre11-slim
    3. variables:
    4. SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
    5. GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
    6. cache:
    7. key: "${CI_JOB_NAME}"
    8. paths:
    9. - .sonar/cache
    10. script: gradle sonarqube
    11. allow_failure: true
    12. only:
    13. - master # or the name of your main branch

    11、修改项目build.gradle,增加sonarqube插件。

    1. plugins {
    2. id "org.sonarqube" version "3.4.0.2513"
    3. }
    4. sonarqube {
    5. properties {
    6. property 'sonar.projectName', "${project.name}"
    7. property "sonar.sourceEncoding", "UTF-8"
    8. property "sonar.sources", "src"
    9. }
    10. }

    12、Git提交修改,合并分支触发CI/CD。

  • 相关阅读:
    单片机IO详解(上拉 下拉 准双向 输入 输出 推挽 开漏)
    UE4 设计模式:单例模式(Singleton Pattern)
    tslib库编译与移植
    java api System类
    ElasticSearch——手写一个ElasticSearch分词器(附源码)
    威纶通触摸屏的事件记录保存并下载(EasyBuilder Pro)
    HTTP VS HTTPS
    文生图大型实践:揭秘百度搜索AIGC绘画工具的背后故事!
    K8s部署calico拉取不到镜像
    6-7抽象类和抽象方法
  • 原文地址:https://blog.csdn.net/fishinhouse/article/details/126100799