jenkins job

1、jenkins job介绍

--代表一个任务或者项目
--可配置与可执行
--执行后的记录称之为Build
--日志监控与记录
--所有文件集中保存

 

2、Jenkins Freestyle与Pipeline Job区别

1)Freestyle Job:

1.需在页面添加模块配置项与参数完成配置;
2.每个Job仅能实现一个开发功能;
3.无法将配置代码化,不利于Job配置迁移与版本控制;
4.逻辑相对简单,无需额外学习成本;

 

2)Pipeline Job:

匹配持续集成与持续交付的概念

1.所有模块,参数配置都可以体现为一个pipeline脚本
2.可以定义多个stage构建一个管道工作集
3.所有配置代码化,方便Job配置迁移与版本控制,
4.需要pipeline脚本语法基础

 

3、jenkins job环境准备

1.配置Jenkins server本地Gitlab DNS

          pass
2.安装git client,curl工具依赖

          pass
3.关闭系统Git http.sslVerify安全认证

          pass
4.添加Jenkins后台Git client user与email

image


5.添加Jenkins后台Git Credential凭据

image

image

 

这里的用户名和密码是gitlab的,后面配置会用到;

image

 

4、Jenkins freestyle Job构建配置

1.创建一个Freestyle project

image

image

 

2.编辑描述信息

image

 

3.参数

选项参数:

image

image

 

文本参数:

image

image

 

4.源代码管理

需要在manage jenkins—>Global Tool Configuration—>Git 里配置git命令的路径;

image

image

 

我这里由于https的方式一直报错,解决不掉,就直接把gitlab的配置换成http了:

[root@gitlab ssl]# vim /etc/gitlab/gitlab.rb
        external_url 'http://gitlab.example.com'  #29行,这里的https换成http
        #nginx['redirect_http_to_https'] = true   #注释此行
        #nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"  #注释此行
        #nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"  #注释此行
        #nginx['ssl_dhparam'] = /etc/gitlab/ssl/dhparams.pem     #注释此行

[root@gitlab ssl]# gitlab-ctl reconfigure
[root@gitlab ssl]# gitlab-ctl restart

 

image

 

5.Build配置

image

然后:应用—>保存

image

 

5、Jenkins pipline Job构建配置

1)Jenkins Pipeline Job编写规范

image

image

image

image

image

 

2)pipline job构建配置

(1)新建任务

image

 

(2)添加描述信息

image

 

(3)Pipeline脚本配置

image

脚本内容:

credentialsId:"deeba975-e535-402b-b2e6-f9d7104389c7"  是凭据里面的”唯一标识“字段;

#!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:"deeba975-e535-402b-b2e6-f9d7104389c7", url: 'http://root@gitlab.example.com/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..."
                }
            }
        }
    }
}

应用,保存;

 

(4)执行

image

 

上面的步骤执行后应该会出现错误:

image

 

查看过错误后,再返回任务界面:

image

 

添加参数,再次构建:

image

 

这次就会成功了:

image

posted @ 2020-04-08 22:25  米兰的小铁將  阅读(1239)  评论(0编辑  收藏  举报