zoukankan      html  css  js  c++  java
  • Jenkins FreeStyle or Pipeline Job

    FreeStyle Job:

      1. 需要在页面添加模块配置项与参数完成配置

      2. 每个Job仅能实现一个开发功能

      3. 无法将配置代码化,不利于Job配置迁移与版本控制

      4. 逻辑相对简单,无额外学习成本

    Pipeline Job:

      1. 所有模块,参数配置都可以体现为一个Pipeline脚本

      2. 可以定义多个Stage构建为一个Pipeline工作集

      3. 所有配置代码化,方便Job配置迁移与版本控制

      4. 需要Pipeline脚本语法基础,学习成本高

    Pipeline 基本架构

      1. 所有代码块包裹在Pipeline{} 层内

      2. stages{} 层用来包含Pipeline中的所有stage子层

      3. stage{} 层用来包含具体需要编写任务的steps{} 子层

      4. steps{} 层用来添加我们具体需要调用的模块语句

    Pipeline示例1

    pipeline{
        agent any    // 定义pipeline在哪台jennkins主机上运行,可以使用any, none 或具体的Jenkins node主机名
        environment{    // 定义全局环境变量,也可以定义在具体的Stage区域中
            host='test.example.com'
            user='deploy'
        }
        stages{        // 任务区域
            stage('build'){     // 任务阶段
                steps{    // 任务步骤
                    sh 'cat $host'
                    echo $deploy
                }
            }
        }
    }

     Pipeline示例2

    #!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: 'bulder version')
        }
        
        stages{
            stage("Checkout test repo"){
                steps{
                    sh 'git config --global http.sslVerify false'
                    dir("${env.WORKSPACE}"){
                        git branch: 'master', credentialsId: "aad1a0c7-29ef-482c-b5dc-86dc0416fb30", url: "https://root@gitlab.pso.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.propreties is empty"
                        fi
                        """
                        echo "[INFO] Build finished..."
                    }
                }
            }
        }
    }

    提示:git工具关闭SSL验证 -> git config --system http.sslVerify false

  • 相关阅读:
    JS document.execCommand实现复制功能(带你出坑)
    jquery动态添加删除一行数据示例
    SpringBoot SpEL表达式注入漏洞-分析与复现
    Fastjson 1.2.22-24 反序列化漏洞分析
    udf提权原理详解
    ZZCMS v8.2 前台Insert注入+任意文件删除
    安恒杯 3月线上个人赛WriteUp
    SQLI LABS Stacked Part(38-53) WriteUp
    【转】Ubuntu16.04安装docker
    安装部署k8s-版本-1.13
  • 原文地址:https://www.cnblogs.com/vincenshen/p/10487599.html
Copyright © 2011-2022 走看看