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}"                                                 //项目的命名空间

                    }

           

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值