使用Jenkins实现CD操作

本文介绍了如何在Jenkins上实现持续集成和持续部署(CI/CD)流程,包括在GitLab中添加代码标签,Jenkins工程配置参数化构建,以及使用SonarQube进行代码质量检测。此外,还详细讲解了SonarQube和SonarScanner的部署,以及Jenkins与SonarQube的集成,最后提到了在CentOS上部署nodejs的步骤。
摘要由CSDN通过智能技术生成

摘要:上一节我们实现了Jenkins的CI,今天我们在上一节的基础上来实现CD操作和代码检查。

一、添加tag

1、打开gitlab,给上次提交的代码,打标签V1.0
2、修改代码,将内容改成如下:
在这里插入图片描述
docker-compose.yaml内容如下:
在这里插入图片描述
将上述代码push到gitlab上,提交成功后,给代码打上V2.0的标签。
3、再次修改代码,将所有的2.0修改为3.0,push到gitlab上,提交成功后,给代码打上V3.0的标签。

二、Jenkins安装 git parameter插件

修改jenkins上mytest的工程如下:

勾选“This project is parameterized”,内容如下:
在这里插入图片描述
Build Setup中添加构建步骤“Excute shell”,并将其移到maven的前面,如下:
在这里插入图片描述
然后点击保存。

三、构建测试

上面创建完成后,进入jenkins的mytest工程,这时左侧的build变成了“Build with Parameters”,点击后会提示选择一个标签。不同的标签对于不同的版本。

四、部署sonarqube

1、部署sonarqube
sonarqube是一个代码检测工具,依赖PostgreSQL数据库。我们以容器的方式运行PG数据库和sonarqube工具,docker-compose脚本如下:

version: "3.1"
services:
  db:
    image: postgres
    container_name: db
    ports:
      - 5432:5432
    networks:
      - sonarnet
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - ./postgresql:/var/lib/postgresql
      - ./postgresql/data:/var/lib/postgresql/data
  sonarqube:
    image: sonarqube:9.6.1-community
    container_name: sonarqube
    depends_on:
      - db
    ports:
      - 9000:9000
    networks:
      - sonarnet
    environment:
      SONAR_JDBC_URL:jdbc: postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - ./logs:/opt/sonarqube/logs
      - ./data:/opt/sonarqube/data
      - ./extensions:/opt/sonarqube/extensions
networks:
  sonarnet:
    driver: bridge

运行起来后,通过浏览器访问http://IP:9000访问sonar的web页面,用户名密码均为admin,然后点击右上角头像–我的账户–安全来创建token。

2、部署sonar-scanner

# 下载
[root@jenkins ~]# wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip
# 解压
[root@jenkins ~]# unzip sonar-scanner-cli-4.7.0.2747-linux.zip 
[root@jenkins ~]# mv sonar-scanner-4.7.0.2747-linux /app/sonar-scanner
# 修改配置
[root@jenkins ~]# cd /app/sonar-scanner/
[root@jenkins ~]# vim sonar-scanner.properties
[root@jenkins ~]# cat /app/sonar-scanner/conf/sonar-scanner.properties 
#Configure here general information about the environment, such as SonarQube server connection details for example
#No information about specific project should appear here

#----- Default SonarQube server
sonar.host.url=http://11.0.1.13:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8

3、配置Jenkins的System-configure
如下:
在这里插入图片描述
4、配置jenkins的全局配置,添加SonarqubeScanner
在这里插入图片描述
5、配置mytest的BuildSetup,在maven后面添加一步“Execute SonarQube Scanner”
内容如下:
在这里插入图片描述

6、Jenkins所在服务器上的maven配置文件配置sonarqube

    <profile>
      <id>sonar</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <sonar.login>admin</sonar.login>
        <sonar.password>Elk@95598</sonar.password>
        <sonar.host.url>http://11.0.1.13:9000</sonar.host.url>
      </properties>
    </profile>

7、部署nodejs
我的操作系统是CentOS7.9-2009,选择nodejs对应版本是node-v14,低版本用不了,高于v16版本需要更高版本的lib库支持。

# 下载
wget https://nodejs.org/download/release/v14.21.2/node-v14.21.2-linux-x64.tar.gz
# 解压
unzip node-v14.21.2-linux-x64.tar.gz
mv node-v14.21.2-linux-x64 /app/node-v14.21.2
# 修改系统环境变量
# vim /etc/profile
export NODE_HOME=/app/node-v14.21.2
export PATH=$NODE_HOME/bin:$PATH

# 创建软链接,不然sonarqube在代码检查过程中依然会报错
ln -s /app/node-v14.21.2/bin/node /usr/local/bin/node
ln -s /app/node-v14.21.2/bin/npm /usr/local/bin/npm

7、测试
以上配置完成后,再次Build,选择任意tag,会在控制台输出中看到代码检查过程。
下面是代码检查的记录和结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dustin.Hoffman

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值