• CICD—Jenkins Gitlab自动化打包前端到K8S


    温馨提示:环境搭建:Jenkins、gitlab、两者之间打通;钉钉机器人创建都已省略自己问度娘文章很多(整个打包过程全自动,开发人员只需要提交代码就可以自动构建)。

    架构图:

    效果图:

    构建完成发布消息到钉钉

    第一步、安装依赖环境 (kubectl、nodejs)

    curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -

    sudo apt-get install -y nodejs

    第二步、配置Jenkins任务

    触发器

    流水线配置

    gitlab配置:

    gitlab钩子设置

    第三步:编写构建脚本,所有分支、环境都用一套脚本打包简化重复工作。

    #!groovy

    pipeline {

        //代理

    agent any

        //环境变量

        environment {

            REPOSITORY="git@xxxxxxxxxxxxxxxxxxxxxxxx.git"                           //git地址

            PROJECT_NAME = "front-xxxxxxxxxxx"                                                  //测试服务名

            PROJECT_NAME_DEV = "xxxx"                                                  //开发服务名

            PROJECT_NAME_PRE = "xxxx"                                                  //开发服务名

            PROJECT_NAME_PROD = "xxxx"                                                  //开发服务名

            BRANCH_DEV= "xxxx"                                                                //开发分支名

            BRANCH_TEST = "xxxx"                                                             //测试分支

            BRANCH_PRE = "xxxx"                                                           //演示分支

            BRANCH_PROD = "xxxx"                                                           //生产分支

            NAMESPACE_DEV = "xxxxx"                                                               //开发命名空间

            NAMESPACE_TEST = "xxxxx"                                                              //测试命名空间

            NAMESPACE_PRE = "xxxx"                                                               //演示命名空间

            NAMESPACE_PROD = "xxxx"                                                              //生产命名空间

            IMAGE_TAG = "${sh(script:'date +%Y%m%d%H%M%S', returnStdout: true).trim()}"      //镜像的tag值

            IMAGE_REGISTRY = "xxxxxxxx"                                                   //镜像仓库地址

            IMAGE_PROJECT = "xxxxxxx"                                                     //镜像项目地址

            IMAGE_NAME = "${IMAGE_REGISTRY}/${IMAGE_PROJECT}/${PROJECT_NAME}:${IMAGE_TAG}"   //镜像名称

            JENKINSURL = "http://xxxxxxxxxxx/job/"                         //jenkins任务回调地址

            BRANCH_NAME = "${params.gitbranch}"                                              //判断变量

        }

        //参数化构建

        parameters {

            gitParameter    branch: '',

                            branchFilter: 'origin/(.*)',

                            defaultValue: 'CICDxxxxx',

                            description: '请选择git分支',

                            name: 'gitbranch',

                            quickFilterEnabled: false,

                            selectedValue: 'NONE',

                            sortMode: 'DESCENDING_SMART',

                            tagFilter: '*',

                            type: 'PT_BRANCH',

                            useRepository: 'git@xxxxxxxgit'

        }

        stages {

            stage('拉取代码') {

                parallel {

                    //手动构建

                    stage('手动构建') {

                        when {

                            not{

                                environment name: 'BRANCH_NAME', value: 'CICDxxxxx'

                            }

                        }

                        environment {

                            BRANCH_NAME = "${params.gitbranch}"                                                 //项目的命名空间

                        }

                        steps {

                            echo "从代码仓库${REPOSITO

  • 相关阅读:
    Raft共识算法图二解释
    vue实现商品列表,组件抽离
    linux 取消分区的挂载以及挂载到新分区如何操作
    服务器与网站部署知识体系目录
    springboot+基于微信小程序的心理医生系统的设计实现 毕业设计-附源码191610
    WPF性能优化:形状(Shape)、几何图形(Geometry)和图画(Drawing)的使用
    申银万国期货通过ZStack Cube信创超融合一体机打造金融信创平台
    盲盒网站遭遇DDoS攻击,高防ip是如何起到安全防护的?
    【.NET Core】使用 Castle 实现 AOP,以及 Autofac 集成 Castle
    企业微信hook接口协议,根据手机号搜索联系人
  • 原文地址:https://blog.csdn.net/yaodunlin/article/details/126710022