流水线有两种方式:
1、脚本式流水线
2、声明式流水线
- 脚本式流水线
node ('master'){ stage("Source"){ //从Git仓库中获取代码 git 'https://github.com/brentlaster/gradle-greetings.git' } stage("Build"){ } stage("Test"){ } stage("push"){ } }
- 声明式流水线
pipeline { agent {label 'master'} stages { stage('Source') { //拉取构建源码 steps { //从git仓库中获取代码 git 'https://github.com/brentlaster/gradle-greetings.git' } } stage('Build') { steps { //运行构建 bat "echo 'Build'" } } stage('Test') { steps { //测试 bat "echo 'Test'" } } stage('Push') { steps { //发布上线 bat "echo Push" } } } }
脚本式流水线和声明式流水线的区别:
脚本式流水线
- 优点:脚本灵活性更高、可以构建更复杂的流水线
- 缺点:脚本代码结构不清晰不容易维护
声明式流水线:
- 优点:脚本灵活性比脚本式较低,一样可构建流水线,脚本代码结构清晰容易维护
- 缺点:构建复杂的流水线会变的更困难
流水线的第三中模式:jenkinsfile
Jenkinsfile可以脱离Jenkins,独立存在于其他地方的流水线构建脚本,jenkinsfile可以位于工程项目代码中,当项目被拉取时,Jenkins会自动读取jenkinsfile文件,并自动实现流水线的构造