• Gitea+Jenkins+webhooks-前端自动化部署


    Gitea+Jenkins+webhooks-前端自动化部署

    jenkins中文汉化文档
    https://blog.csdn.net/qq_37489565/article/details/104337073
    
    安装Locale插件=>设置语言为zh_US=>重启=>设置语言为zh_CN=>刷新页面就可以了
    
    • 1
    • 2
    • 3

    Jenkins的插件安装,在插件管理中安装Generic Webhook Trigger用于gitea构建触发器,Blue Ocean可以理解为Jenkins的一个皮肤(个人感觉界面看起来和操作使用很舒服)

    image-20220620164823770

    安装插件
    image-20220620164946351

    第二个插件

    image-20220620170714008

    第三个插件

    image-20220620170949689

    关于Jenkins准备工作,已经基本做完,下一步将使用gitea中的webhooks与Jenkins进行联系,达到代码自动部署的效果

    首先,我们先点新建任务,进入到任务列表,接下来,我将分享两种构建的方式,分别是批处理命令构建和pipeline流水线语法的方式构建

    image-20220620165232454

    创建任务

    image-20220620165251798

    自由风格项目构建

    在任务配置中输入gitea clone的地址,并且点击新建验证方式,我这里用的是用户名密码

    image-20220620170120462

    构建触发器
    http://JENKINS_URL/generic-webhook-trigger/invoke
    
    • 1

    image-20220620171316030

    TOken
    vue_vite
    
    • 1

    image-20220620171528992

    然后在仓库设置中添加web钩子,设置请求的地址,地址与Jenkins构建触发器中示例地址一致

    image-20220621140437029

    web钩子设置

    image-20220621140522060

    配置选择
    image-20220621140732105

    触发条件

    我选择的是推送,即当前仓库收到推送信息就会通过webhooks通知Jenkins构建项目,最后测试一下是否能正常请求,请求成功后就会执行构建

    image-20220621140900262

    image-20220621140908321

    我的完整成功推送
    http://192.168.2.202:8080/jenkins/generic-webhook-trigger/invoke?token=dajiba
    
    • 1

    image-20220621142255035

    配置构建

    构建内容

    #指此脚本使用/bin/sh 来执,说明如果没有声明,则脚本将在默认的shell中执行,默认的shell是由用户所在的系统定义为执行shell脚本
    #!/bin/bash -l
    
    #进入jenkins工作空间下项目目录中
    cd /root/.jenkins/workspace/webhook-111111
    
    #安装项目中的依赖
    npm  install 
    
    #打包
    npm run build
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    image-20220621142835129

    更新代码,测试更新

    随便更新一些代码上去

    image-20220621152848169

    上传代码

    image-20220621152932404

    发现jenkins在自动更新

    image-20220621152953133

    构建pipeline流水线语法

    创建任务

    image-20220621171422443

    构建触发器

    image-20220621171528456

    配置一个参数,如果以后还有项目,构建的时候可以灵活选择
    single_project_name
    
    /root/.jenkins/workspace/webhooks-rock
    
    • 1
    • 2
    • 3

    image-20220622112411431

    对应定义的值

    image-20220622112439532

    发布到服务器语法

    image-20220622134003831

    然后就是构建流水线脚本,这里放出我配置的一段供大家参考。
    pipeline { 
       agent any 
       stages { 
          stage('拉取代码') { 
              steps { 
                  checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '7f49313d-880d-4a5e-836f-cef4bf2ec37a', url: 'http://192.168.2.204:3000/aike/test.git']]])
                } 
            }
          stage('选择node版本编译打包') { 
                 steps { 
                  nodejs('node') {
                    sh '''cd ${single_project_name}
                          npm  install 
                          npm run build
                          tar -zcvf  ./front.end-levee.tar.gz   ./dist'''
                  }
                } 
            } 
          stage('发布到服务器') { 
                 steps { 
                  sshPublisher(publishers: [sshPublisherDesc(configName: '192.168.2.204', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''
                cd /a
                tar -xzf front.end-levee.tar.gz -C ./
                cp -r dist/* ./ 
                rm -rf   front.end-levee.tar.gz''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/a', remoteDirectorySDF: false, removePrefix: '', sourceFiles: 'front.end-levee.tar.gz')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
                } 
            }             
       }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    构建可以选择对应目录

    image-20220622112757619

    最终完整构建

    image-20220622134401026

    测试推送更新代码

    image-20220622135049321

    最终成功图

    构建可以选择对应目录

    [外链图片转存中…(img-y6qOI4YS-1655878283587)]

    最终完整构建

    [外链图片转存中…(img-Q6HSAftj-1655878283588)]

    测试推送更新代码

    [外链图片转存中…(img-Ut9iazn7-1655878283588)]

    最终成功图

    image-20220622135208902

  • 相关阅读:
    torch.nn.utils.rnn下面pack_padded_sequence和pad_packed_sequence方法
    vue 如何预览pdf文件?
    冬天虽冷,希望你们能够坚强一点
    基于SSM的学生事务处理系统设计与实现
    5分钟使用ssl证书免费配置任意域名的 https
    Lua与Python:深度解析两者之间的核心差异
    安宝特AR汽车行业解决方案系列1-远程培训
    一个产品经理回忆录
    CTP行情推送规则是怎样执行文件的?
    golang实现es根据某个字段分组,对某个字段count总数,对某个字段sum求和
  • 原文地址:https://blog.csdn.net/tianmingqing0806/article/details/125408239