| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 | /*** Jenkinsfile 示例代码* 拷贝使用要记得修改agent和steps内执行项目*/pipeline {    agent none    stages {        // 生产        stage('prod build') {            // 当分支为master的时候执行            when {                branch 'master'            }            // 自动构建项目根目录下的 Dockerfile 文件,并使用其为运行容器            agent { dockerfile true } // agent要放在when后,否则依旧会运行一次docker            // 一些额外的选项            options {                // 失败则重试三次                retry(3)            }                        steps {                // 在容器中执行 shell                sh 'composer'                // 在jenkins输出中打印信息                echo '一些有用的信息'            }        }        // 测试环境        stage('test build') {            when {                branch 'test'            }            // 使用 docker 镜像 php:7.4-cli 为运行容器            agent { docker 'php:7.4-cli' }            steps {                sh 'php --version'            }        }        // 生产环境        stage('dev build') {            when {                branch 'dev'            }            // 在标签为 'test80' 的服务器上执行,可以与 docker 等组合使用            def workspace = '/usr/src/app'            agent {                lable: 'test80'                docker {                    image {                       id: 'php:7.4-cli'                        withRun: '-d -p 13333:8080 -d -w ${workspace} -v $PWD:${workspace}' // run 参数                    }                }            }            /*            agent {                docker {                    image 'php:8.2-cli'                    lable: 'develop-server' // 在lable为xxx的节点对应docker容器运行                    args: ' --verbose' // 额外的docker参数                }            }             */            steps {                sh 'cat ./file_need_to_merge'            }        }        // 没有when也就是任意时候都会执行        stage('after build') {            agent any // 在任何可用的代理上执行流水线或阶段,没有多节点的情况下其实就是直接执行shell啦。。            /*            agent { lable: 'maybe-server' } // 在lable为xxx的节点上运行             */            steps {                echo 'Always excecute after other stages.'            }        }    }    // 根据执行结果执行    post {        // 失败        failure {            echo 'FAILURE MESSAGE'        }        // 成功        success {            echo 'SUCCESS MESSAGE'        }    }}
 |