zoukankan      html  css  js  c++  java
  • 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
    prod',
                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

  • 相关阅读:
    积跬步,聚小流------关于UML类图
    深度学习 Deep Learning UFLDL 最新 Tutorial 学习笔记 1:Linear Regression
    数字语音信号处理学习笔记——语音信号的短时频域分析(2)
    PHP程序猿必须学习的第二课——站点安全问题预防
    Connection for controluser as defined in your configuration failed.
    NYOJ 76 超级台阶
    单片机小白学步系列(十) 单片机程序下载相关知识
    SQL 语言划分
    UVA 11754
    客户端远程方法声明
  • 原文地址:https://www.cnblogs.com/weiyiming007/p/12663385.html
Copyright © 2011-2022 走看看