使用jenkins搭建自动部署
自动部署流程
什么是自动部署
自动部署就是当我们提交代码到 Git 仓库时,能自动帮我们打包一份代码然后部署到指定环境。
自动部署如何实现
自动部署中最主要的是如何实现自动打包,并且部署。这里我选择的是 Jenkins 来实现,而代码仓库选择 Gitea。
具体实现流程如下:
Jenkins
前置软件
java
Jenkins 依赖 java,所以在装 Jenkins 之前需要把 java 安装好
git
提交代码软件
Gitea
线上代码仓库,可以根据需求选择其它仓库也行。
nginx
前端项目服务器,可以根据需求选择其它服务器也行。
node
用于前端项目的包安装和项目打包
下载配置 Jenkins
- 下载Jenkin
- 安装过程中遇到 Logon Type 时,选择第一个。
剩下的一路回车,直到安装完毕。
3. 打开jenkins(http://localhost:8080),按照提示找到对应的文件(直接复制路径在我的电脑中打开),其中有管理员密码。 4. 下一步就是选择安装推荐的插件,不过在安装之前的配置下资源路径。不然外网的的路径会导致很多插件安装失败 先找到jenkins的配置文件
- 找到jenkins的配置文件
将以下配置替换:
updates.jenkins.io/download 全部替换为 mirrors.tuna.tsinghua.edu.cn/jenkins
www.google.com 全部替换为 www.baidu.com
- 创建管理员用户
使用 Pipeline 构建部署
使用 Pipeline 构建项目是为了一边在执行 git push 命令的时候能够自动构建项目,不需要手动触发。
- 点击用户头像,然后在设置中添加一个token。
- 在流水线中依次选择 Pipeline script from SCM 和 Git ,输入自动触发的仓库的地址,如果需要指定分支也可以修改分支名称,默认分支为 master ,脚本路径输入 Jenkinsfile 。
- 在你项目根目录下创建一个Jenkinsfile文件,编写流水线。
pipeline {
agent any // agent节点,any告诉jenkins 任何可用的agent都能执行
stages {
stage('Build') {
steps { // window 使用 bat, linux 使用 sh
bat 'npm i'
bat 'npm run build'
}
}
stage('Deploy') {
steps {
bat 'xcopy .\\docs\\.vuepress\\dist\\* C:\\buildCode\\blog\\ /s/e/y'
}
}
}
}
整个 Pipeline 过程请根据你项目实际情况来编写
- 使用 git 提交我们最新的代码,然后再 jenkins 点击构建我们的项目
这时就能看到我们的项目会按照 Jenkinsfile文件配置的过程运行啦
自动部署
- 在创建 Pipeline 时,我们需要额外的配置触发器-构建触发器中选择"触发远程构建",并输入你自定义的 token。
- 在jenkins的安装目录中找到 jenkins.xml,在<arguments>标签中添加以下代码,作用是关闭CSRF验证。接着回到 jenkins 根目录,输入 jenkins.exe restart 重启 jenkins
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
- 返回首页,在Manage Jenkins 中点击 Configure Global Security 。在授权策略中勾选"匿名用户具有可读权限",然后点击保存按钮。
- 回到 Gitea 仓库,点击仓库设置。
- 在管理web钩子中点击添加钩子按钮,然后在下拉选项中点击Gitea.
- 填写目标URL,触发条件可以根据自己的需求进行调整。
- 点击底部的测试推送按钮可以查看配置是否成功了