第四章 4-6~4-7 Jenkins Job的编码规范和构建配置

  • 一、Freestyle Job的编码规范和构建配置
  • 1.1、创建一个freestyle任务
  • 1.2、编辑描述信息
  • 1.3、添加参数配置
  • 1.4、源代码管理
  • 1.5、Build配置
  • 1.6、Job构建工作
  • 二、Pipeline Job的编码规范与构建配置
  • 2.1、Pipeline简介
  • 2.1.1、pipeline基础架构
  • 2.1.2、agent区域
  • 2.1.3、environment区域
  • 2.1.4、script区域
  • 2.1.5、常用steps区域
  • 2.2、Pipeline Job构建配置
  • 2.2.1、新建一个pipeline job
  • 2.2.2、添加描述信息
  • 2.2.3、编写pipeline脚本
  • 2.2.4、测试构建


一、Freestyle Job的编码规范和构建配置

1.1、创建一个freestyle任务

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_git

1.2、编辑描述信息

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_02

1.3、添加参数配置

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_参数配置_03

1.4、源代码管理

登录之前的gitlab

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_git_04


进入到test-repo,拷贝git的地址

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_05


将仓库地址复制到源码管理配置中,但是出现了下面的错误。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_参数配置_06


我们需要去系统管理下面的全局工具配置中配置下面的。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_参数配置_07


但是在配置上后,会出现下面的报错,这是由于Git的版本不是最新的导致的。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_参数配置_08


参照下面的链接,安装配置最新的Git。

Linux下安装最新版的Git 安装配置后,可以看到已经没有报错了。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_09

1.5、Build配置

#!/bin/sh:指定命令的类型为shell命令
export:引入环境变量

#!/bin/sh
export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"

# Print env variable
echo "[INFO] Print env variable"
echo "Current deployment envrionment is $deploy_env" >> test.properties
echo "The build is $version" >> test.properties
echo "[INFO] Done..."

# Check test properties
echo "[INFO] Check test properties"
if [ -s test.properties]
then
  cat test.properties
  echo "[INFO] Done..."
else
  echo "test.properties is empty"
fi

echo "[INFO] Build finished..."

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_10

1.6、Job构建工作

点击下图左侧红色框中的按钮,进入到构建参数配置页面,在设置了确定的配置参数的情况下,点击“开始构建”按钮开始构建。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_git_11


点击后可以看到下面展示的信息,说明构建成功。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_12


点击左边的蓝色圆球,进入到控制台输出界面

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_13


jenkins gitlab Credentials 选择不了 jenkins gitlab配置_git_14


进入到之前的配置界面的构建中,修改之前的shell脚本。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_15


保存后,重新按上面的步骤构建,查看控制台输出,在test.properties文件中成功输出了相关参数。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_git_16

二、Pipeline Job的编码规范与构建配置

2.1、Pipeline简介

2.1.1、pipeline基础架构

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_17

2.1.2、agent区域

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_参数配置_18

2.1.3、environment区域

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_参数配置_19

2.1.4、script区域

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_20

2.1.5、常用steps区域

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_参数配置_21

2.2、Pipeline Job构建配置

2.2.1、新建一个pipeline job

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_参数配置_22


jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_23

2.2.2、添加描述信息

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_24

2.2.3、编写pipeline脚本

#!groovy

pipeline {
	agent {node {label 'master'}}

	environment {
		PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"
	}

	parameters {
		choice(
			choices: 'dev\nprod',
			description: 'choose deploy environment',
			name: 'deploy_env'
		)
		string (name: 'version', defaultValue: '1.0.0', description: 'build version')
	}

	stages {
		stage("Checkout test repo") {
			steps{
				sh 'git config --global http.sslVerify false'
				dir ("${env.WORKSPACE}") {
					git branch: 'master', credentialsId: "edc4ee8c-db9a-4d09-bed6-5747da58d83b", url: 'http://192.168.2.200:8091/root/test-repo.git'
				}
			}
		}
		stage("Print env variable") {
			steps {
				dir ("${env.WORKSPACE}") {
					sh """
					echo "[INFO] Print env variable"
					echo "Current deployment environment is $deploy_env" >> test.properties
					echo "The build is $version" >> test.properties
					echo "[INFO] Done..."
					"""
				}
			}
		}
		stage("Check test properties") {
			steps {
				dir ("${env.WORKSPACE}") {
					sh """
					echo "[INFO] Check test properties"
					if [ -s test.properties ]
					then
						cat test.properties
						echo "[INFO] Done..."
					else 
						echo "test.properties is empty"
					fi
					"""

					echo "[INFO] Build finished..."
				}
			}
		}
	}
}

把上面的脚本复制黏贴到下图中,点击保存。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_参数配置_25

2.2.4、测试构建

点击构建命令去构建脚本。但是构建失败。构建失败的原因是git命令不存在。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_git_26


针对这个问题,在下图中,已经修改了git的命令路径。说明在jenkins的git配置上应该是没有问题的。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_27


检查之前编写的pipeline脚本,发现是下面的变量参数上没有添加git的路径,导致下面的shell语句在执行的时候找不到命令路径。

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_git_28


修改后

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_29


重新执行构建命令,构建成功!

jenkins gitlab Credentials 选择不了 jenkins gitlab配置_git_30


jenkins gitlab Credentials 选择不了 jenkins gitlab配置_git_31


jenkins gitlab Credentials 选择不了 jenkins gitlab配置_编码规范_32