Jenkins前端自动化构建部署+钉钉群机器人消息推送

671 阅读5分钟

前言

在平常项目开发中,我们常见的开发部署流程(这边以vue为例):

未命名文件.png

一系列枯燥重复的操作。那我们能不能通过一些工具来帮我们处理这些操作,让我们只需要专注于代码逻辑的层面的开发?答案当然是肯定的,下面主要介绍下使用Jenkins来实现前端自动化工作流搭建的过程。

Jenkins是什么

Jenkins 是一款业界流行的开源持续集成工具,监控持续重复的工作。广泛用于项目开发,具有自动化构建、测试和部署等功能。

centos7下搭建Jenkins持续集成环境(安装jenkins)

Java环境安装

安装JDK

yum install java-1.8.0-openjdk

Jenkins安装

添加Jenkins库到yum库,Jenkins将从这里下载安装。

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install -y jenkins

如果不能安装就到官网(pkg.jenkins-ci.org/redhat-stab…)下载jenkis的rmp包

wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.7.3-1.1.noarch.rpm
rpm -ivh jenkins-2.7.3-1.1.noarch.rpm

配置jenkis的端口

 vi /etc/sysconfig/jenkins

找到修改端口号:

JENKINS_PORT="8080" 若该端口不冲突可以不修改

Jenkins启动

service jenkins start/stop/restart
  • 安装成功后Jenkins将作为一个守护进程随系统启动
  • 系统会创建一个“jenkins”用户来允许这个服务,如果改变服务所有者,同时需要修改/var/log/jenkins, /var/lib/jenkins, 和/var/cache/jenkins的所有者
  • 启动的时候将从/etc/sysconfig/jenkins获取配置参数
  • 默认情况下,Jenkins运行在8080端口,在浏览器中直接访问该端进行服务配置
  • Jenkins的RPM仓库配置被加到/etc/yum.repos.d/jenkins.repo

打开Jenkins

在浏览器中访问 首次进入会要求输入初始密码如下图, 初始密码在:/var/lib/jenkins/secrets/initialAdminPassword

img

选择“Install suggested plugins”安装默认的插件,下面Jenkins就会自己去下载相关的插件进行安装。

img

img

创建超级管理员账号

img

img

Jenkins配置自动构建部署

前期准备

在【系统管理(Manage Jenkins)】--【插件管理(Manage Plugins)】安装一些必要的插件

image.png

image.png

安装NodeJS

image.png

点击【系统管理(Manage Jenkins)】--【全局工具配置(Global Tool Configuration)】

image.png

找到【NodeJS】,点击新增【NodeJS】

image.png

填写一下别名,点击保存

image.png

安装插件【 publish over ssh 】,用于自动构建发包到服务器上

【系统管理(Manage Jenkins)】--【插件管理(Manage Plugins)】,搜索插件【publish over ssh 】,点击安装即可

image.png

安装完成后,到【系统管理(Manage Jenkins)】——【系统设置(Configure System)】,找到Publish over SSH,点击新增。

image.png

配置服务器相关信息

image.png

点击【高级】进行其他配置

image.png

测试配置

image.png

新建项目

选择【构建一个自由风格的软件项目】;

名称必须填英文(否则部署的过程可能会出现问题)

image.png

项目配置

新建完之后会直接跳到项目配置

image.png

General

勾选【参数化构建过程(This project is parameterized)】;

点击 》 添加参数--选项参数(Choice Parameter);

14.png

填写 》选项参数(Choice Parameter);

并且继续选择 》添加参数——字符参数(String Parameter)

status
​
deploy
roll_back
​
|deploy : 发布 |
----------------
|roll_back : 回滚 |

image.png

填写 》字符参数(String Parameter)

version
0
                ↑*回滚选项*↑
     --------------------------------
**      回滚请填写回滚版本号     **
     --------------------------------

image.png

源码管理

1、选择Git;2、填写仓库地址;3、添加git的用户名,密码; 4、填写用来发布的分支;

image.png

image.png

选择凭证,最终完成git的配置

构建触发器

选择》Provide Node & npm bin/ folder to PATH 选项,如果之前的NodeJS没有安装成功,则看不到这个选择

image.png

构建

点击【增加构建步骤】;

选择 》执行Shell (Execute Shell)

image.png

填写命令

case ${status} in
  deploy)
    node -v
    npm -v
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    cnpm -v
    cnpm install
    cnpm run build
    echo "Status:$Status"
     path="D:/frontEnd/payCenterBackup/${BUILD_NUMBER}"  
    mkdir -p  $path
    \cp -r ${WORKSPACE}\\dist $path
    echo "Completing!"
    ;;
    
  roll_back)
    echo "status:$status"
    echo "version:$version"
    cd ${WORKSPACE}
    rm -rf dist
    cd D:/frontEnd/payCenterBackup/$version
    \cp -r dist ${WORKSPACE}/
      ;;
esac

image.png

构建后操作

关联发布的服务器,选择【Send build artifacts over SSH】,要先安装插件【 publish over ssh 】,否则可能不会有这个选项,上面的前期准备有写安装方法。

image.png

SSH Publishers配置信息

image.png

最终效果

image.png

钉钉机器人提醒

安装Gitee插件

img

img

配置Gitee插件信息

img

img

img

生成令牌

image-20220619223605630.png

image-20220619223745537.png

安装钉钉插件

img

创建项目

新建item

img

构建任务,选择适合你的选项,输入名字 ,点击确定

img

General配置,项目url,把你的Gitee项目的url拷贝过来

img

填写了上面的url后:

img

源码管理

  • Repository URL:仓库地址(用SSH地址)
  • Credentials:凭证,点击“添加”
  • Branches to build:构建的分支
  • 源码浏览器:你所使用的代码仓库管理工具,如github, gitlab.

img

点击“添加”,输入相应内容后“添加”,在Credentials右侧下拉选择“你的Gitee账号+描述”

img

构建触发器 (保存Gitee WebHooks密码,后面Gitee(码云)WebHooks设置用到)

img

img

构建环境:指定构建工具

img

构建后操作(可以多选)

创建钉钉机器人

选择一个要推送给的钉钉群组-》设置-》智能群助手-》添加机器人

image-20220619225321929.png

image-20220619225443934.png

image-20220619225917133.png

钉钉access token

img

img

构建成功后通过Gitee发送到钉钉群

配置Gitee的WebHooks

img

img

img

出现错误:{"errcode":310000,"errmsg":"keywords not in content"}

没关系的,因为这个请求里面没有包含:你创建机器人时 “自定义关键词” (所以关键字写项目名、经常出现的字……)

测试效果

这里可以很清楚的看到谁对分支进行了操作,具体修改了什么都有迹可循。

image-20220619230425195.png

完结!撒花!

感谢

本次分享到这里就结束了,感谢您的阅读,如果本文对您有什么帮助,别忘了动动手指点个赞 ❤️ 和关注。

更多内容欢迎关注访问下面二维码或搜索公众号:修行全栈,获取更多实用内容。

qrcode_for_gh_0a9d846748ac_344.jpg