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'
- }
- }
- }
|