一、下载

二、Jdk/Java环境配置

  • 解压
1
2
tar -zxvf jdk-11.0.1_linux-x64_bin.tar.gz
mv jdk-11.0.1_linux-x64_bin /usr/local/jdk
  • 添加环境变量

vim /etc/profile

1
2
3
4
5
6
7
8
9
#   追加写入
........
# Java11
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${PATH}
export PATH=/usr/local/node/bin:${PATH}

  • 使配置生效
1
source /etc/profile

三、Jenkin初始化

  • jenkins存放目录
1
/www/jenkins/jenkins.war
  • 启动
1
nohup java -jar jenkins.war --httpPort=9080 > jenkins.log 2>&1 &
  • 安装

启动后在浏览器访问http://ip:9080,根据提示在`~/.jenkins/secrets/initialAdminPassword`文件中找到初始密码,根据提示选择安装推荐的插件

Install suggested plugins,安装后以后根据提示创建账号密码。

四、Jenkins配置

  • 添加全局SSH密钥【密钥为Jenkins所在服务器的私钥】

​ 地址:http://localhost:9080/manage/credentials/store/system/domain/_/

​ web界面:系统管理—>Manage Credentials—>System—>全局凭据 (unrestricted)—>Add Credentials ,根据要求添加私钥

  • 插件安装

    【Docker Pipline】:使用Jenkins构建镜像时需用到

    【build user vars】:获取构建者信息时需用到

五、流水线任务配置

1.创建一个流水线任务

以【FirstPipeline】为例

【web地址】:http://localhost:9080/job/FirstPipeline/configure

2.修改以下配置:

  • 2.1【Throttle builds】

    1
    2
    构建数:1
    Time period:Secone
  • 2.2 只勾选【不允许并发构建】

  • 2.3【参数化构建过程】:选择字符参数

    1
    2
    3
    4
    5
    名称:target
    默认值:test
    描述:
    test:测试环境
    prod:生产环境
  • 2.4【流水线】

    1
    2
    3
    4
    5
    6
    7
    8
    定义:Pipeline script from SCM
    SCM:Git
    Repository URL:项目代码仓库地址
    Credentials:全局凭据里的保存的私钥
    Branches to build:指定分支:*/test
    源码库浏览器:(自动)
    脚本路径:Jenkinsfile
    勾选轻量级检出

六、Vue项目Jenkinsfile示例

采用指定节点声明式流水线写法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
node {
stage('拉取代码'){
try {
echo "拉取最新代码!"
checkout scm
}
catch(err) {
echo "拉取失败!"
throw err
}
}
stage('打包') {
try{
sh 'node --version'
sh 'pnpm --version'
sh 'pnpm --registry https://registry.npm.taobao.org install --no-frozen-lockfile'
sh 'pnpm build'
}
catch(err){
echo 'pnpm build failed'
throw err
}
}
stage('部署') {
if (env.target == 'prod') {
sh "rsync -zcav -e ssh dist/* server01:/data/www/website"
}
}
stage('清理'){
deleteDir()
}
}

七、一些说明

这种方式未增加自动触发构建发布操作,每次更新代码后需手动到Jenkins上流水线任务中点击Build with Parameters才可触发构建发布操作。后续再更新配合gitlab webhook进行提交触发构建的步骤及所需的Jenkins 插件文档。