目前,我正在进行质量流程,以确保代码可以接受。为此,我集成了Jenkins,SonarQube和GitLab,它们运行在不同的服务器中(实际上它们位于不同的docker容器中)。
这个想法是每次针对GitLab推送代码时检查SonarQube并阻止提交,合并等,无论SonarQube是否未通过。
我已经将Jenkins与SonarQube集成在一起,但Jenkins会检查他工作区内的代码,所以想象一下他的笔记本电脑中的开发人员需要推动他的更改的情况。
我的概念问题很简单:是否可以集成这些技术来实现这一目标?而且,如果问题是肯定的,那么哪些步骤是必要的?
PD:我不需要查看代码,配置文件等。我只需要这样的东西:
答案 0 :(得分:2)
首先,在docker中意味着每个工具都在自己的容器中 他们只需要通过网络看到对方,这就是Docker Engine in Swarm mode进来的地方。
第二个“配置Jenkins与SonarQube一起工作”......这就是我在我的商店里所做的事情,并没有太多的内容。
安装Jenkins SonarQube plugin和address for the SonarQube server entered之后,您可以configure your job并调用声纳(例如使用maven:$SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL
)
然后,在Jenkins工作区中完成的分析将在SonarQube服务器中发布。
群组服务器是docker-compose.yml file项目中2015年marcelbirkner/docker-ci-tool-stack
的更现代版本。
这个想法保持不变:每个元素都在自己的容器中隔离。
答案 1 :(得分:0)
我自己没有尝试过,但https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin在您的设置中可能很有趣。