|
@@ -0,0 +1,96 @@
|
|
|
|
+/**
|
|
|
|
+* Jenkinsfile 示例代码
|
|
|
|
+* 拷贝使用要记得修改agent和steps内执行项目
|
|
|
|
+*/
|
|
|
|
+pipeline {
|
|
|
|
+ agent none
|
|
|
|
+ stages {
|
|
|
|
+ // 生产
|
|
|
|
+ stage('prod build') {
|
|
|
|
+ // 当分支为master的时候执行
|
|
|
|
+ when {
|
|
|
|
+ branch 'master'
|
|
|
|
+ beforeAgent true // 设置 beforeAgent 为 true 来避免直接运行 docker 容器
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 自动构建项目根目录下的 Dockerfile 文件,并使用其为运行容器
|
|
|
|
+ agent { dockerfile true }
|
|
|
|
+
|
|
|
|
+ // 一些额外的选项
|
|
|
|
+ options {
|
|
|
|
+ // 失败则重试三次
|
|
|
|
+ retry(3)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ steps {
|
|
|
|
+ // 在容器中执行 shell
|
|
|
|
+ sh 'composer'
|
|
|
|
+ // 在jenkins输出中打印信息
|
|
|
|
+ echo '一些有用的信息'
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 测试环境
|
|
|
|
+ stage('test build') {
|
|
|
|
+ when {
|
|
|
|
+ branch 'test'
|
|
|
|
+ beforeAgent true
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 使用 docker 镜像 php:7.4-cli 为运行容器
|
|
|
|
+ agent { docker 'php:7.4-cli' }
|
|
|
|
+
|
|
|
|
+ steps {
|
|
|
|
+ sh 'php --version'
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 生产环境
|
|
|
|
+ stage('dev build') {
|
|
|
|
+ when {
|
|
|
|
+ branch 'dev'
|
|
|
|
+ beforeAgent true
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 在标签为 'test80' 的服务器上执行
|
|
|
|
+ agent { label 'test80' }
|
|
|
|
+ // 复杂参数 docker
|
|
|
|
+ // agent {
|
|
|
|
+ // docker {
|
|
|
|
+ // label 'test80' // 使用 label 为 test80 的节点为宿主机运行docker
|
|
|
|
+ // image 'php:7.4-cli'
|
|
|
|
+ // args '-d -p 13333:8080 -d -w /usr/src/app -v $PWD:/usr/src/app' // 参数
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+
|
|
|
|
+ steps {
|
|
|
|
+ sh '''cat ./file_need_to_merge
|
|
|
|
+ pwd
|
|
|
|
+ uname -a
|
|
|
|
+ ifconfig
|
|
|
|
+ cat /proc/1/cgroup || true
|
|
|
|
+ '''
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 没有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'
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|