zoukankan      html  css  js  c++  java
  • 流水线发布项目(mvn、ant、gradle、npm)

    一、Jenkins上操作

    1、创建一个名称为:demo-maven-service_PUSH的流水线,如下图:

    2、勾选“参数化构建过程”

      2.1添加参数--->选项参数

        名称:srcUrl
        选项:填写GitLab URL
        描述:GitLab地址

       2.2添加参数--->选项参数

         名称:branchName
         选项:master
         描述:分支名称

       2.3添加参数--->选项参数

        名称:buildType
        选项:mvn
        描述:打包类型

      2.4添加参数--->字符参数

        名称:buildShell
        默认值:clean package -DskipTests
        描述:打包命令

    3、流水线

    定义:选择Pipeline script from SCM
    SCM:这边选择Git
    Repositories
    Repository URL:这边填写jenkinsfile的GitLab地址(下面创建的GitLab项目jenkinsfile地址)
    Credentials:这边填写凭证
     
    Branches to build
    指定分支:这边填写jenkinsfile上的分支名,如master
    脚本路径:ci.jenkinsfile(jenkinsfile项目下的文件名)
     

    二、在GitLab上新建立一个项目:jenkinsfile并在项目下新建立ci.jenkinsfile(名称对应上面的流水线中的脚本路径),内容如下:

    #!groovy

    //选择构建类型
    String buildType = "${env.buildType}"
    //打包命令
    String buildShell = "${env.buildShell}"
    //定义srcUrl项目的GitLab地址
    String srcUrl = "${env.srcUrl}"
    ////定义项目的GitLab分支
    String branchName = "${env.branchName}"

    //pipeline
    pipeline{
        //选择任何可用的节点
        agent any
        
        stages{
            stage("CheckOut"){
                steps{
                    script{
                        //下载代码,详细步骤见打开流水线语法
                        checkout([$class: 'GitSCM', branches: [[name: "${branchName}"]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'gitlab-auth', url: "${srcUrl}"]]])
                    }
                }
            }
            
            stage("Build"){
                steps{
                    script{
                        build.Build(buildType,buildShell)
                    }
                }
            }
        }
    }

     三、在GitLab上新建立一个项目,名称为:jenkinslib并建立src/org/devops/build.groovy共享库,内容如下:

     package org.devops

    //构建类型,命令
    def Build(buildType,buildShell){

        def buildTools = ["mvn":"MAVEN_HOME","ant":"ANT_HOME","gradle":"GRADLE_HOME","npm":"NODE_HOME"]

        println("当前选择的构建类型为${buildType}")
        
        buildHome = tool buildTools[buildType]

        sh "${buildHome}/bin/${buildType} ${buildShell}"
    }

    四、在Jenkins上配置使用共享库

    1、打开Manage Jenkins--->Configure System--->Global Pipeline Libraries

    Library

    Name:这边填写上面在gitlab上创建的共享库名称jenkinslib

    Default version:这边填写gitlab上创建的共享库名称jenkinslib分支默认名称master

     Modern SCM:这边勾选

    Git:这边勾选

    Project Repository:这边填写上面在gitlab上创建的共享库名称jenkinslib的GitLab地址

    Credentials:这边填写jenkins连接gitlab上创建的共享库名称jenkinslib的GitLab认证(可以在jenkins上的凭据上添加)

     

    五、最终效果图如下:

     

    说明:

      1、pipeline上引用jenkinsfile是为了在GitLab上方便管理;2、引用共享库是为了大家都可以方便引用;3、以上构建只是mvn模版,另ant、gradle、npm也类似。
  • 相关阅读:
    当你不知道今天星期几,不妨在编辑器写下这段代码
    自定义注解!绝对是程序员装逼的利器!!
    什么是可串行化MVCC
    Jetpack新成员,一篇文章带你玩转Hilt和依赖注入
    连接真机开发安卓(Android)移动app MUI框架 添加购物车等——混合式开发(四)
    从前世今生聊一聊,大厂为啥亲睐时序数据库
    工作五年,面试官说我只会CRUD!竟然只给我10K!
    bootstrap知识总结
    数据处理的两个基本问题05 零基础入门学习汇编语言42
    转移指令的原理02 零基础入门学习汇编语言44
  • 原文地址:https://www.cnblogs.com/wangguod/p/12660789.html
Copyright © 2011-2022 走看看