Vue
CentOS 下安装 Docker
Docker 内部署 Gogs
Docker 内部署 Jenkins
新建 Jenkins 任务
安装 Jenkins 插件
安装/更新 Jenkins 插件
Jenkins 插件安装完成,正在重启 ...
Gogs
1 新建仓库
新增 Gogs 仓库
2 配置钩子
管理 Gogs 仓库的 Web 钩子
Jenkins
1 配置 Gogs Web 钩子
Gogs Webhook
2 配置源码管理
Jenkins 任务的 Git 仓库源码管理配置
3 配置 Generic Webhook Trigger
至此,git 钩子已经配置完成,接下来就要部署自动打包,发布了。因我是直接作为生产环境,进行发布的,所以只需要执行 npm run install && npm run build 进行打包即可。至于单元测试 npm run test 等,根据自身需求进行配置相应指令即可。
4 配置 Node
NodeJs
Jenkins 的 NodeJs 插件
NodeJs 安装完成
构建环境配置
第一种方式
任务待执行的Shell指令
npm install
npm run build
mv /www/jenkins/workspace/MIIT-Account-Web-Manager /www/account/web/
第二种方式
cd /www/account/web/
npm install
npm run build
# 内存小, 删了这些文件
cd /www/jenkins/workspace/
rm -rf MIIT-Account-Web-Manager MIIT-Account-Web-Manager@tmp
# 头信息
Request URL: https://jenkins.makeit.vip/generic-webhook-trigger/invoke?token=test
Request method: POST
Content-Type: application/json
X-Github-Delivery: ac081e28-eb9a-4332-95c3-ea367ed0457c
X-Github-Event: pull_request
X-Gogs-Delivery: ac081e28-eb9a-4332-95c3-ea367ed0457c
X-Gogs-Event: pull_request
X-Gogs-Signature:
# 推送内容
{
"action": "closed",
"number": 4,
"pull_request": {
......
"number": 4,
"head_branch": "master",
"head_repo": {
......
},
"base_branch": "master",
"base_repo": {
......
}
},
"repository": {
......
},
"sender": {
......
}
}
我们来看看具体的操作过程:
配置名为 head_branch 的变量
配置名为 action 的变量
配置 Header Parameters
(任意)拼装过滤名称及其相应的值
测试推送
配置 username 变量(post content parameters)
至此就完成了 Vue 项目的自动化部署相关的配置了,Jenkins 配置的相关变量怎么设置都可以,Gogs 钩子的配置要注意的就是密码的配置,仓库与任务的密码都要一致才能正常拉取代码,NodeJs 是执行 npm 等一些操作时所需要的支持。
最后面的合并操作,是当Gogs内的组织创建了项目,自己的账号派生了组织的项目,进而在提交合并后触发,如果没有派生组织项目,是直接拉取的组织项目,则合并这一步可以改为你想要的那个操作。自此,你的代码在你提交到仓库或合并到组织仓库时,就自动完成了部署,再无需操心了 ...