搭建 jenkins
-
拉取 jenkins 镜像
执行以下命令拉取镜像(以 2.433-jdk17 版本为例):
shdocker pull jenkins/jenkins:2.433-jdk17
需要注意的是 jenkins 最新镜像是 jenkins/jenkins,而不是 jenkins:
-
运行 jenkins 镜像
执行以下命令拉取镜像(以 2.433-jdk17 版本为例):
sh//jenkins/jenkins-data为本机某个目录 //外网访问端口设置为18080 docker run \ -d \ --name jenkins \ --rm \ -u root \ -p 18080:8080 \ -v /jenkins/jenkins-data:/var/jenkins_home \ jenkins/jenkins:2.433-jdk17
-
浏览器访问 18080 端口
加载可能需要一些时间,完成后会出现下图的界面:
执行以下命令获取管理员密码:
shdocker exec jenkins bash -c "cat /var/jenkins_home/secrets/initialAdminPassword" =>d1bc30kecf304f1489423a2c74b2b59e
填入管理员密码后继续,等待片刻后,安装推荐的插件。
-
安装推荐的插件
部分插件可能安装失败,安装失败后可尝试重试安装。安装完成后会进入到管理员账户的创建页面。
-
创建管理员账户
创建用户后会进入到示例配置页面。
-
示例配置
点击保存后,就能进入 jenkins 操作界面了:
但是最好重启下容器(有些插件重启才会生效),执行以下命令:
shdocker restart jenkins
配置 Node 环境
-
安装 Node 插件
重启容器后访问 18080 端口,登录后就能进入 jenkins 主页了。进入主页后选择系统管理=>插件管理:
在 Avaliable plugins 中搜索 nodejs,点击安装: 安装完成后重启容器。
-
配置 Node
重启完成后,在 jenkins 主页选择系统管理=>全局工具配置: node 版本选择的与开发环境一致,需预装 yarn(前端项目用 yarn 做包管理工具) 包管理工具。
配置 Gitee
-
配置 Gitee 登录凭证
在 jenkins docker 运行所在的服务器上生成 ssh key(如果有则不需要重新生成),执行命令:
shssh-keygen -t rsa
将公钥 id_rsa.pub 的内容拷贝到 Gitee 设置页面 SSH 公钥配置当中:
-
在 jenkins 中添加凭证
在 jenkins 主页选择系统管理=>凭据=>系统(system)=>全局凭据: 下图中,用户名为 docker 运行的用户,Private Key 为上一步生成的 id_rsa 的内容。 点击 Create 创建生成凭证。
创建流水线
-
创建文件夹
为了方便管理,先创建一个文件夹(在 jenkins 主页选择新建任务),名为 multi-body:
-
添加自由风格项目
在上一步中创建的 multi-body 文件中选择新建 Item,创建一个自由风格的软件项目名为 micro-simulation:
-
添加编译配置
在上一步创建的 micro-simulation 项目中选择配置:
-
配置源码管理 URL 填写 Gitee 上项目的 ssh 地址,Credentials 选前述生成的凭证(gitee-ssh),分支默认 master:
-
配置 Node 环境
-
配置 build 命令
shyarn //安装node_modules yarn build //执行build命令,build完后会在项目根目录生成rand-batch文件夹 tar -czf rand-batch.tar.gz rand-batch
-
归档上一步生成的 tar 文件
下图中用于存档的文件目录是相对于项目根目录,归档后就能生成该 tar 文件的下载链接。
-
-
开始构建
上一步配置完成后,就可以开始根据配置文件构建项目了:
-
查看构建结果
构建完成后就能看到最后生成的 tar 文件了,点击可以下载。
此外,对于构建的相关信息都可以点击构建序列号进行查看:
通过以上步骤,就能通过 jenkens 构建在 gitee 上的前端项目了。
部署
-
安装 Publish Over SSH 插件
jenkins 主页选择系统管理=>插件管理,在 Avaliable plugins 中搜索 Publish Over SSH,点击安装: 安装完成后重启容器。
-
目标服务器生成密钥
在需要部署的目标服务器生成密钥(如果有则不需要重新生成),执行命令:
shssh-keygen -t rsa
将公钥放到 authorized_keys,执行命令:
shcat id_rsa.pub >> authorized_keys
-
配置 Publish Over SSH 插件
重启完成后在系统管理=>系统配置会多出一个 Publish over SSH:
下图中,Key 填入上一步生成的私钥 id_rsa 的内容,Name 随意起一个目标服务器的名称,Hostname 为目标服务器 IP,Username 为链接目标服务的用户名, 可以点击右下角的 Test Configution 进行连通性测试。
-
添加构建后操作步骤 Send build artifacts over SSH
进入项目配置页面,添加构建后操作步骤 Send build artifacts over SSH: Name 选择上一步配置好 ssh server,Source files 文件是相对于工作区,Remote directory 目录是相对于用户 ssh 登录默认目录,比如用户是 abc,ssh 默认登录目录可能是/home/abc,则最后上传的目录是/home/abc/www/packages,Exec command 就是登录到目标服务器后要执行的脚本,这里主要是将 tar 文件解压到目标目录。
自此就能够一键构建并部署项目了。