jenkins gogs shell php releae分支自动触发

两种方式,使用Gogs Webhook和Generic Webhook Trigger插件,建议用Gogs Webhook方式简单省事,官网推荐 建议看下面第二种方式。

一、 jenkins Generic Webhook Trigger插件,源码管理配置git地址。Generic Webhook Trigger方式,

在这里插入图片描述
Post content parameters -
Variable:ref
Expression:$.ref
选择JSONPath
Token :ht-pre 与gogsweb hook 地址对应,例如gogs 配置地址: http://xxx.xxx.xxx.xxx:8099/generic-webhook-trigger/invoke?token=ht-pre
Cause:Generic Cause

在这里插入图片描述

Optional filter-
Expression(触发的分支release或test) :^\S*refs/heads/release|refs/heads/test$
Text :$ref

在这里插入图片描述

BUILD_ID=demo
ssh root@192.168.9.160 '/home/ht-pre/sh/deploy.sh'

deploy.sh

#!/bin/bash

cd /home/ht/wwww
/usr/bin/git checkout -b release -t origin/release
/usr/bin/git fetch --all
git branch --set-upstream-to=origin/release release
/usr/bin/git reset --hard origin/release
/usr/bin/git checkout release
/usr/bin/git pull --rebase
chown -R www:www /home/ht/www
vue shell
BUILD_ID=demo


cd $WORKSPACE
echo $WORKSPACE
node -v
npm -v
#npm install --registry=https://registry.npm.taobao.org
cnpm install
#chmod -R 777 $WORKSPACE
npm run build
/usr/bin/tar -zcvf dist.tar.gz dist/
#/usr/bin/rsync -avzP --delete $WORKSPACE/dist.tar.gz root@47.95.234.153:/www/wwwroot/dist.tar.gz
scp -r  $WORKSPACE/dist.tar.gz root@IP:/www/wwwroot/dist.tar.gz
rm -rf dist.tar.gz

#ssh root@47.95.234.153 'rm -rf /www/wwwroot/admintest.shangdan.cn/*'
ssh root@IP '/data/sh/deploy-vue.sh'

[root@4test ~]# cat /data/sh/deploy-vue.sh
#!/bin/bash
cd /www/wwwroot/
rm -rf /www/wwwroot/admintest.sd.cn/*
/usr/bin/tar -zxvf dist.tar.gz
mv dist/* /www/wwwroot/admintest.sd.cn/
rm -rf dist*

cd /www/wwwroot/admintest.sd.cn/

#/usr/bin/chattr -i .user.ini
/usr/bin/chown -R www:www /www/wwwroot/admintest.sd.cn/
/usr/bin/chmod -R 755 /www/wwwroot/admintest.sd.cn/

#/usr/bin/chmod  644 ./.user.ini
#/usr/bin/chattr +i .user.ini
/usr/bin/nginx -s reload

2、gogs 配置web hook

http://xxx.xxx.xxx.xxx:8099/generic-webhook-trigger/invoke?token=ht-pre
在这里插入图片描述

有定时任务的,shell 例如tt321_task
#!/bin/bash

cd /docker/www/tt321_task
/usr/bin/git checkout -b master -t origin/master
/usr/bin/git fetch --all
git branch --set-upstream-to=origin/master master
/usr/bin/git reset --hard origin/master
/usr/bin/git checkout master
/usr/bin/git pull --rebase

#pid=$(cat /docker/www/tt321_task/tmp/task.pid)
kill -9 `cat /docker/www/tt321_task/tmp/task.pid`
sleep 2s
nohup /usr/local/php/bin/php /docker/www/tt321_task/bin.php task >> /dev/null 2>&1 &



============================================================================

二、采用 gogs webhook 最近安装新版本jenkins,

最近发现Generic Webhook Trigger配置繁琐。gogs简单,官网文档https://plugins.jenkins.io/gogs-webhook/
步骤:
1、前提jenkins能正常启动,默认推荐插件已安装,详情略。
2、jenkins 安装Gogs plugin 插件。
3、Jenkins新建任务,例如crm,构建一个自由风格软件项目。
4、jenkins配置gogs Webhook,构建触发器、构建部署shell。
5、配置gogs web钩子,测试,结束。
下面从第二步开始

2、Jenkins 安装Gogs plugin 插件,

在这里插入图片描述

3、Jenkins新建crm任务,自由风格

在这里插入图片描述

4、jenkins配置gogs Webhook,构建部署shell
Gogs Webhook Branch filter项配置分支名和秘钥文本,例如release分支,格式:refs/heads/release

在这里插入图片描述

构建触发器

在这里插入图片描述

构建shell,具体脚本看方式一

在这里插入图片描述

5、配置gogs web钩子,添加web 钩子,选择gogs,继续配置gogs钩子,秘钥文本crm
格式;http(s)://<< jenkins-server >>/gogs-webhook/?job=<< jobname >>
lhttp://jenkins的IP/gogs-webhook/?job=crm
例如: http://192.168.9.100:8080/gogs-webhook/?job=crm

在这里插入图片描述

在这里插入图片描述

git push代码到release分支,开始执行构建。结束

流水线方式

gogs的配置保持不变,只更新jenkins配置,
首先创建流水线,例如crm(可删除crm任务重建crm)
在这里插入图片描述
gogs webhook 与方式二配置一致
在这里插入图片描述
触发器
在这里插入图片描述
流水线脚本,可以从其他文章中找一份,会修改会用即可,例如只修改对应阶段stage步骤steps,本项目是php的,java的可参考其他文档,我使用shell脚本在服务器中执行部署,所以此处只修改最后阶段Deploy步骤。


pipeline {
    agent any
    stages {
        stage('Clone') {
            steps {
              echo '拉取成功'
              # git branch: 'dev', credentialsId: 'c9484090-017e-433c-9f88-9a27787feb2b', url: 'http://115.28.168.100:10080/crm/crm.git'    
            }
        }
        stage('Build') {
            steps {
              echo '构建完成'
            }
        }
        stage('Test') {
            steps {
              echo '测试成功'
            }
        }
        stage('Deploy') {
            steps {
              sh 'ssh root@192.168.9.157 \'/data/sh/crm.sh\''
              echo '运行成功'
            }
        }
    }
}

打开流水线语法
在这里插入图片描述
生成流水线脚本:sh ‘ssh root@192.168.9.157 ‘/data/sh/crm.sh’’
在这里插入图片描述
复制到Deploy阶段步骤中
在这里插入图片描述
点击应用
在这里插入图片描述
提交代码到release分支开始测试,成功,

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值