pipeline学习

目录
  • 一、常用语法
  • 二、基础使用
  • 三、使用 Groovy 沙盒
  • 四、参数化构建过程
  • 五、pipeline script from SCM
  • 六、参考

一、常用语法

1、拉取git仓库代码

checkout([
        $class: 'GitSCM',
        branches: [[name: 代码分支名称]],
        doGenerateSubmoduleConfigurations: false,
        userRemoteConfigs: [[credentialsId: 权限, url: 代码地址]]
])

2、cleanWs()或者deleteDir(), 删除工作目录

// 删除${WORKSPACE}目录
cleanWs()

// 判断目录是否存在
dir("${env.WORKSPACE}@tmp") {
    //删除${WORKSPACE}@tmp目录
    deleteDir()
}

3、withCredentials ,获取用户名和密码

steps{
    withCredentials([usernamePassword(credentialsId: 'user_for_openshift', passwordVariable: 'password', usernameVariable: 'username')]) {
    sh 'docker login -u $username -p $password registory.ctiwifi.cn:5000
    }
}

4、readJSON读取json文件

def readJsonFile(filePath) {
    def propMap = readJSON file: filePath
    return propMap
}

二、基础使用

pipeline学习_第1张图片
pipeline学习_第2张图片
pipeline学习_第3张图片
pipeline学习_第4张图片

  • pipeline代码
pipeline {
  agent any
  stages {
    stage('初始化') {
        steps {
            echo '初始化。。。'
        }
    }
    stage('打包') {
        steps {
            echo '打包。。。'
        }
    }
    stage('测试') {
        steps {
            echo '测试。。。'
        }
    }
    stage('发布') {
        steps {
            echo '发布。。。'
        }
    }
  }
}

三、使用 Groovy 沙盒

pipeline学习_第5张图片
pipeline学习_第6张图片
pipeline学习_第7张图片
pipeline学习_第8张图片
pipeline学习_第9张图片
pipeline学习_第10张图片

  • pipeline代码
pipeline {
  agent any
  stages {
    stage('初始化') {
        steps {
            echo '初始化。。。'
        }
    }
    stage('打包') {
        steps {
            echo 'git代码拉取。。。'
            checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'a8db6793-cc2b-4d82-bd3d-c5beb1c5149e', url: 'http://192.168.3.11/root/rapid-screen.git']]])
            
            echo 'mvn打包。。。'
            sh "/usr/local/apache-maven-3.8.2/bin/mvn -U clean install"
        }
    }
    stage('测试') {
        steps {
            echo '测试。。。'
        }
    }
    stage('发布') {
        steps {
            echo '发布。。。'
        }
    }
  }
}

四、参数化构建过程

pipeline学习_第11张图片
pipeline学习_第12张图片

  • pipeline代码
pipeline {
  agent any
  parameters {
    booleanParam(name: 'ENABLE_BACKEND_BUILD', defaultValue: true, description: '开启后端构建')
    booleanParam(name: 'ENABLE_DEPLOY', defaultValue: true, description: '开启部署')
  }
  stages {
    stage('初始化') {
        steps {
            echo '初始化。。。'
        }
    }
    stage('打包') {
        when{
            expression{params.ENABLE_BACKEND_BUILD}
        }
        steps {
            echo '打包。。。'
            ws("backend_build"){
                dir("my_docker"){
                    echo 'git代码拉取。。。'
                    checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: 'a8db6793-cc2b-4d82-bd3d-c5beb1c5149e', url: 'http://192.168.3.11/root/rapid-screen.git']]])
            
                    echo 'mvn打包。。。'
                    sh "/usr/local/apache-maven-3.8.2/bin/mvn -U clean install"
                }
                echo '打包完成。。。'
                // 删除backend_build工作目录
                cleanWs()
            }
        }
    }
    stage('测试') {
        steps {
            echo '测试。。。'
        }
    }
    stage('发布') {
        when{
            expression{params.ENABLE_DEPLOY}
        }
        steps {
            echo '发布。。。'
        }
    }
  }
}

五、pipeline script from SCM

1、新建一个docker-build项目并配置Jenkinsfile,如下
pipeline学习_第13张图片

2、新建pipeline项目,选择pipeline script from SCM,git设置为上面新建的docker-build项目
pipeline学习_第14张图片
pipeline学习_第15张图片

六、参考

  • https://blog.csdn.net/diantun00/article/details/81075007
  • pipeline常用插件: https://blog.csdn.net/liurizhou/article/details/86669572

你可能感兴趣的:(pipeline学习)