启动jenkins 项目
安装插件
注意
安装完记得重启Jenkins,否则新安装的插件不会显示哦。
配置Gitee
在[Jenkins] > [系统管理] > [系统配置] > [Gitee配置] 配置 Gitee 信息:
- 链接名:输入Gitee或随便输入你想要的名称
- Gitee域名URL:输入Gitee完整的URL地址 https://gitee.com
- 证书令牌:如没有添加需要新建一个,点击添加(如下图)
在gitee 生成 私人访问令牌
在设置中找到私人令牌菜单,按提示生成一个即可,然后将令牌填入jenkins 相应位置即可
- Domain:选择全局凭据
- 类型:选择Gitee API令牌
- 范围:选择全局
- Gitee APIV5 私人令牌,点击获取(opens new window)
- ID 和 描述就随便写不一样的就行
添加完令牌就直接选择就行,然后点击【测试链接】,如果出现成功
则表示配置正确:
安装NodeJS
因为我们的Vue项目是基于 NodeJS 来打包构建的,所以需要在 Jenkins 中安装插件:
配置NodeJS
在[系统管理] > [系统配置] > [全局工具配置] > [NodeJS] 点击【NodeJS安装】:
注意
NodeJS 版本不要选太高,选最新的LTS版本即可,否则可能因为版本不兼容导致构建失败,建议选择版本和本地开发的版本相同,这样就不会有问题了。
构建任务配置
在 Jenkins 首页点击【新建任务】开始第一个流水线的构建,选择构建一个自由风格的软件项目 点击保存即可创建构建项目:
新建完成后进入配置,流水线会按照 [General] > [源码管理] > [构建触发器] > [构建环境] > [构建] > [构建后操作]的步骤来执行自动化任务。
源码管理
在jenkins 容器中生成 ssh key
本项目jenkins 由docker 生成,所以进入 docker 容器 到 ~/.ssh 目录 下 通过指令 ssh-keygen -t rsa -C "email.com" -f filename_id_rsa 生成相应 的公私匙
如果有多个仓库要配置相应 的config
将容器目录 下的 id_rsa_pub 文件的内容配置到gitee中
在gitee配置SSH
按操作提示输入 内容并保存完成 配置。
添加gitee SSH KEY
按如图添加
- 类型: SSH USERNAME with private key
- id ,描述 随便写
- username 填写 gitee 中的用户名
- enter private key 将 jenkins 中生成的 id_rsa 文件内容复制到此即可
选择 Git 选项
- Repository URL: 创建的git项目地址
- Credentials:点击添加一个凭据(注意 Gitee API Token 凭据不可用于源码管理的凭据,只用于gitee插件的 API 调用凭据)
- 点击【高级】 Advanced 按钮,Name输入origin,Refspec输入+refs/heads/:refs/remotes/origin/
- 指定分支:master
gitee 配置webhooks
进入 项目仓库 , 在菜单中选择 【管理】
jenkins 推送地址 在下图中找到
生成密匙
将上面的令牌填入gitee 中
增加构建后操作实现 CICD 全流程即可
配置Jenkins 对外域名
在Jenkins的控制台中,单击“Manage Jenkins” -> “Configure System” -> “Jenkins URL”。
-
点击系统管理
image.png
-
打开系统配置
image.png -
location 修改后,就可以改变对外IP
image.png
gitlab 配置 webhooks
-
管理员登录并进入到项目会有如下图的操作项
image.png
点击左侧菜单的webhook 配置相关信息
-
secret token 由 jenkins 配置中高级下面生成
image.png
在jenkins 配置项目的webhook中展开会有生成secret token 的操作
点击 generate 按钮就可以生成,如果一次失败,多点几次就可以。
至此 webhooks 就配置好了
Docker 容器网络通讯
由于是通过宿主网桥进行通讯, 在容器内没有设置相应的DNS 配置的话,是无法通过 域名访问的,(没有公网域名)
需要在docker-compose.yml 中增加下面的配置
jenkins 构建 nuxt 项目配置
- 配置仓库(确何已经配置了SSH key)
-
配置 CICD 用的 webhooks
将jenkins 下图中的 hooks URL 和secrect token 填入 gitlab webhooks 配置中的相应 位置 并添加完成配置。
image.png
image.png
-
nuxt 项目要增加 node 构建环境 (需要先安装 nodejs 插件)
image.png
-
添加构建步骤(写shell 脚本 )
image.png
-
完成构建后增加提交代码至服务器并启动应用的指令(未完成)
image.png