Skip to content

使用jenkins搭建自动部署

自动部署流程

什么是自动部署

自动部署就是当我们提交代码到 Git 仓库时,能自动帮我们打包一份代码然后部署到指定环境。

自动部署如何实现

自动部署中最主要的是如何实现自动打包,并且部署。这里我选择的是 Jenkins 来实现,而代码仓库选择 Gitea。

具体实现流程如下:
Jenkins

Jenkins

前置软件

java
Jenkins 依赖 java,所以在装 Jenkins 之前需要把 java 安装好

git
提交代码软件

Gitea
线上代码仓库,可以根据需求选择其它仓库也行。

nginx
前端项目服务器,可以根据需求选择其它服务器也行。

node
用于前端项目的包安装和项目打包

下载配置 Jenkins

  1. 下载Jenkin
  2. 安装过程中遇到 Logon Type 时,选择第一个。

Jenkins

剩下的一路回车,直到安装完毕。
3. 打开jenkins(http://localhost:8080),按照提示找到对应的文件(直接复制路径在我的电脑中打开),其中有管理员密码。 4. 下一步就是选择安装推荐的插件,不过在安装之前的配置下资源路径。不然外网的的路径会导致很多插件安装失败 先找到jenkins的配置文件

Jenkins

  1. 找到jenkins的配置文件

Jenkins

将以下配置替换:
updates.jenkins.io/download 全部替换为 mirrors.tuna.tsinghua.edu.cn/jenkins
www.google.com 全部替换为 www.baidu.com

  1. 创建管理员用户

使用 Pipeline 构建部署

使用 Pipeline 构建项目是为了一边在执行 git push 命令的时候能够自动构建项目,不需要手动触发。

  1. 点击用户头像,然后在设置中添加一个token。

Jenkins

  1. 在流水线中依次选择 Pipeline script from SCMGit ,输入自动触发的仓库的地址,如果需要指定分支也可以修改分支名称,默认分支为 master ,脚本路径输入 Jenkinsfile

Jenkins

  1. 在你项目根目录下创建一个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 过程请根据你项目实际情况来编写

  1. 使用 git 提交我们最新的代码,然后再 jenkins 点击构建我们的项目 Jenkins

这时就能看到我们的项目会按照 Jenkinsfile文件配置的过程运行啦

自动部署

  1. 在创建 Pipeline 时,我们需要额外的配置触发器-构建触发器中选择"触发远程构建",并输入你自定义的 token。

Jenkins

  1. 在jenkins的安装目录中找到 jenkins.xml,在<arguments>标签中添加以下代码,作用是关闭CSRF验证。接着回到 jenkins 根目录,输入 jenkins.exe restart 重启 jenkins
-Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true

Jenkins

  1. 返回首页,在Manage Jenkins 中点击 Configure Global Security 。在授权策略中勾选"匿名用户具有可读权限",然后点击保存按钮。

Jenkins

  1. 回到 Gitea 仓库,点击仓库设置。

Jenkins

  1. 在管理web钩子中点击添加钩子按钮,然后在下拉选项中点击Gitea.

Jenkins

  1. 填写目标URL,触发条件可以根据自己的需求进行调整。

Jenkins

  1. 点击底部的测试推送按钮可以查看配置是否成功了

Jenkins

Blue Ocean 插件