jenkins实现easyswoole 持续集成/持续部署

488 篇文章 0 订阅
112 篇文章 1 订阅

 jenkins环境jenkins需要使用root用户启动可通过修改  vim /etc/sysconfig/jenkins改为root,也可直接命令行root启动新增流水线项目安装远程构建插件Generic Webhook Trigger勾选触发远程构建保存之后,访问  /generic-webhook-trigger/invoke?token=easyswoole-test,即可自动bui...

jenkins环境
jenkins需要使用root用户启动可通过修改 

 vim /etc/sysconfig/jenkins

改为root,也可直接命令行root启动

新增流水线项目

安装远程构建插件

Generic Webhook Trigger

勾选触发远程构建

 保存之后,访问  /generic-webhook-trigger/invoke?token=easyswoole-test,即可自动build:

初始化项目

通过docker安装easyswoole项目,并运行,可使用 http://www.php20.cn/article/sw/docker/271 编译镜像

docker build -t easyswoole -f  ./dockerfile  ./ #编译easyswoole镜像
docker run -itd --privileged \
--name=easyswoole-test -p 0.0.0.0:9501:9501 -v /var/lib/jenkins/workspace/easyswoole-test:/work \
easyswoole /usr/sbin/init  #启动一个容器
cd /var/lib/jenkins/workspace/easyswoole-test # 进入映射目录
git clone   ## 拉取自己的git项目代码 
docker exec -it easyswoole-test bash ## 进入docker容器
cd /work/easyswoole-test/ ## 进入项目目录
composer up
php ./vendor/bin/easyswoole install
php easyswoole server start -d

 访问 localhost:9501,即可看到输出

在easyswoole项目附带上 /Doc/start.sh 脚本,并上传到git项目中:

##!/usr/bin/env bash
#PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
#export PATH;
cd /work/
mkdir -p ./www 
rm -rf ./build-tmp/Temp
\cp -rf ./build-tmp/* ./www/
cd ./www
php easyswoole server stop
php easyswoole server start -d

持续集成/持续部署流程说明

通过git hook,每次commit都将自动触发build,并且开始自行更新代码,执行单元测试,如果单元测试过了,那就更新到线上版本

 

pipeline代码

pipeline {
    agent none
    environment {
        GIT_URL = 'git@gitee.com:ncl520/easyswoole-test.git'//git ssh地址,可以实现免密下载
        DOCKER_IMAGES = 'easyswoole' //docker image镜像,用于单元测试执行
        PORT = 9501
        LOCAL_PORT = 9501
        DOCKER_NAME = 'easyswoole-test' //部署的正式容器名
    }
    stages {
        stage("down") {
            agent any
            steps {
                sh 'rm -rf ./build-tmp && git clone $GIT_URL ./build-tmp' //先删除原有代码,并且开始更新线上代码
            }
        }
        stage('build') {
            agent {
                docker {
                    image 'easyswoole'//通过easyswoole环境,安装composer 
                }
            }
            steps {
                sh "cd ./build-tmp  && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ && composer up"
                echo "build success"
            }
        }
        stage('Test') {
            agent {
                docker {
                    image 'easyswoole'//通过easyswoole环境,启动一个easyswoole 测试版,并执行单元测试 
                }
            }
            steps {
                sh "cd ./build-tmp && php easyswoole server start -d"
                sh "cd ./build-tmp && php easyswoole phpunit ./Test"
            }
        }
 
        stage('Deploy') { //进入部署阶段,进入正式容器里面执行更新命令
            agent any
            steps {
                sh 'docker exec $DOCKER_NAME bash /work/build-tmp/Doc/start.sh' ## 调用Doc/start.sh脚本
                echo "hello world"
            }
        }
    }
    post {
        success { //成功后发送邮件
            emailext (
                    subject: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
                    body: """<p>SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
                    <p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>""",
                    to: "1067197739@qq.com",
                    from: "1067197739@qq.com"
            )
        }
        failure {
            emailext (
                    subject: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
                    body: """<p>FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
                    <p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME}          [${env.BUILD_NUMBER}]</a>"</p>""",
                    to: "1067197739@qq.com",
                    from: "1067197739@qq.com"
            )
        }
    }
}

 jenkins实现easyswoole 持续集成/持续部署

 仙士可 发表于 2023/06/21 17:30:00

 71  0  0

【摘要】 jenkins环境jenkins需要使用root用户启动可通过修改  vim /etc/sysconfig/jenkins改为root,也可直接命令行root启动新增流水线项目安装远程构建插件Generic Webhook Trigger勾选触发远程构建保存之后,访问  /generic-webhook-trigger/invoke?token=easyswoole-test,即可自动bui...

jenkins环境
jenkins需要使用root用户启动可通过修改 

 vim /etc/sysconfig/jenkins

改为root,也可直接命令行root启动

新增流水线项目

 

安装远程构建插件

Generic Webhook Trigger

勾选触发远程构建

 保存之后,访问  /generic-webhook-trigger/invoke?token=easyswoole-test,即可自动build:

初始化项目

通过docker安装easyswoole项目,并运行,可使用 http://www.php20.cn/article/sw/docker/271 编译镜像

docker build -t easyswoole -f  ./dockerfile  ./ #编译easyswoole镜像
docker run -itd --privileged \
--name=easyswoole-test -p 0.0.0.0:9501:9501 -v /var/lib/jenkins/workspace/easyswoole-test:/work \
easyswoole /usr/sbin/init  #启动一个容器
cd /var/lib/jenkins/workspace/easyswoole-test # 进入映射目录
git clone   ## 拉取自己的git项目代码 
docker exec -it easyswoole-test bash ## 进入docker容器
cd /work/easyswoole-test/ ## 进入项目目录
composer up
php ./vendor/bin/easyswoole install
php easyswoole server start -d

复制

访问 localhost:9501,即可看到输出

在easyswoole项目附带上 /Doc/start.sh 脚本,并上传到git项目中:

##!/usr/bin/env bash
#PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
#export PATH;
cd /work/
mkdir -p ./www 
rm -rf ./build-tmp/Temp
\cp -rf ./build-tmp/* ./www/
cd ./www
php easyswoole server stop
php easyswoole server start -d

 复制

持续集成/持续部署流程说明

通过git hook,每次commit都将自动触发build,并且开始自行更新代码,执行单元测试,如果单元测试过了,那就更新到线上版本

pipeline代码

pipeline {
    agent none
    environment {
        GIT_URL = 'git@gitee.com:ncl520/easyswoole-test.git'//git ssh地址,可以实现免密下载
        DOCKER_IMAGES = 'easyswoole' //docker image镜像,用于单元测试执行
        PORT = 9501
        LOCAL_PORT = 9501
        DOCKER_NAME = 'easyswoole-test' //部署的正式容器名
    }
    stages {
        stage("down") {
            agent any
            steps {
                sh 'rm -rf ./build-tmp && git clone $GIT_URL ./build-tmp' //先删除原有代码,并且开始更新线上代码
            }
        }
        stage('build') {
            agent {
                docker {
                    image 'easyswoole'//通过easyswoole环境,安装composer 
                }
            }
            steps {
                sh "cd ./build-tmp  && composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ && composer up"
                echo "build success"
            }
        }
        stage('Test') {
            agent {
                docker {
                    image 'easyswoole'//通过easyswoole环境,启动一个easyswoole 测试版,并执行单元测试 
                }
            }
            steps {
                sh "cd ./build-tmp && php easyswoole server start -d"
                sh "cd ./build-tmp && php easyswoole phpunit ./Test"
            }
        }
 
        stage('Deploy') { //进入部署阶段,进入正式容器里面执行更新命令
            agent any
            steps {
                sh 'docker exec $DOCKER_NAME bash /work/build-tmp/Doc/start.sh' ## 调用Doc/start.sh脚本
                echo "hello world"
            }
        }
    }
    post {
        success { //成功后发送邮件
            emailext (
                    subject: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
                    body: """<p>SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
                    <p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME} [${env.BUILD_NUMBER}]</a>"</p>""",
                    to: "1067197739@qq.com",
                    from: "1067197739@qq.com"
            )
        }
        failure {
            emailext (
                    subject: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'",
                    body: """<p>FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]':</p>
                    <p>Check console output at "<a href="${env.BUILD_URL}">${env.JOB_NAME}          [${env.BUILD_NUMBER}]</a>"</p>""",
                    to: "1067197739@qq.com",
                    from: "1067197739@qq.com"
            )
        }
    }
}

复制

jenkins配置pipeline 

注意,git地址这边,如果是ssh方式,需要先生成ssh公钥放到git服务器中,可查看:使用ssh RSA加密方式授权git

构建

点击立即构建,可在下面查看构建详细情况

 红点表示报错,可点击查看报错详情,图中为没有安装docker执行插件

安装docker插件

进入系统管理->插件管理,安装docker-pipeline

 

 安装成功之后重启,再进行构建

重新构建

 

测试构建成功.

git-hook

更新项目代码,并提交

记得更新单元测试,否则会不通过

jenkins将自动构建并更新

输出内容自动更新为了新的,并且通过了单元测试

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

📌 博客主页: 程序员念姐
📌 专注于软件测试领域相关技术实践和思考,持续分享自动化软件测试开发干货知识!
📌 如果你也想学习软件测试,文末卡片有我的交流群632880530,加入我们,一起交流和学习!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值