|  | @@ -1,18 +1,33 @@
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | +* Jenkinsfile 示例代码
 | 
	
		
			
				|  |  | +* 拷贝使用要记得修改agent和steps内执行项目
 | 
	
		
			
				|  |  | +*/
 | 
	
		
			
				|  |  |  pipeline {
 | 
	
		
			
				|  |  |      agent none
 | 
	
		
			
				|  |  |      stages {
 | 
	
		
			
				|  |  |          // 生产
 | 
	
		
			
				|  |  |          stage('prod') {
 | 
	
		
			
				|  |  | +            // 自动构建项目根目录下的 Dockerfile 文件,并使用其为运行容器
 | 
	
		
			
				|  |  |              agent { dockerfile true }
 | 
	
		
			
				|  |  | +            // 当分支为master的时候执行
 | 
	
		
			
				|  |  |              when {
 | 
	
		
			
				|  |  |                  branch 'master'
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | +            // 一些额外的选项
 | 
	
		
			
				|  |  | +            options {
 | 
	
		
			
				|  |  | +                // 失败则重试三次
 | 
	
		
			
				|  |  | +                retry(3)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              steps {
 | 
	
		
			
				|  |  | +                // 在容器中执行 shell
 | 
	
		
			
				|  |  |                  sh 'composer'
 | 
	
		
			
				|  |  | +                // 在jenkins输出中打印信息
 | 
	
		
			
				|  |  | +                ehco '一些有用的信息'
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // 测试环境
 | 
	
		
			
				|  |  |          stage('test') {
 | 
	
		
			
				|  |  | +            // 使用 docker 镜像 php:7.4-cli 为运行容器
 | 
	
		
			
				|  |  |              agent { docker 'php:7.4-cli' }
 | 
	
		
			
				|  |  |              when {
 | 
	
		
			
				|  |  |                  branch 'test'
 | 
	
	
		
			
				|  | @@ -23,6 +38,7 @@ pipeline {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          // 生产环境
 | 
	
		
			
				|  |  |          stage('dev') {
 | 
	
		
			
				|  |  | +            // 在任何可用的代理上执行流水线或阶段,没有多节点的情况下其实就是直接执行shell啦。。
 | 
	
		
			
				|  |  |              agent any
 | 
	
		
			
				|  |  |              when {
 | 
	
		
			
				|  |  |                  branch 'dev'
 | 
	
	
		
			
				|  | @@ -31,5 +47,23 @@ pipeline {
 | 
	
		
			
				|  |  |                  sh 'echo Jenkins Test'
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        // 没有when也就是任意时候都会执行
 | 
	
		
			
				|  |  | +        stage('after build') {
 | 
	
		
			
				|  |  | +            agent any
 | 
	
		
			
				|  |  | +            steps {
 | 
	
		
			
				|  |  | +                echo 'Always excecute after other stages.'
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    // 根据执行结果执行
 | 
	
		
			
				|  |  | +    post {
 | 
	
		
			
				|  |  | +        // 失败
 | 
	
		
			
				|  |  | +        failure {
 | 
	
		
			
				|  |  | +            echo 'FAILURE MESSAGE'
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 成功
 | 
	
		
			
				|  |  | +        success {
 | 
	
		
			
				|  |  | +            echo 'SUCCESS MESSAGE'
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |