pursue wind pursue wind
首页
Java
Python
数据库
框架
Linux
中间件
前端
计算机基础
DevOps
项目
面试
书
关于
归档
MacOS🤣 (opens new window)
GitHub (opens new window)
首页
Java
Python
数据库
框架
Linux
中间件
前端
计算机基础
DevOps
项目
面试
书
关于
归档
MacOS🤣 (opens new window)
GitHub (opens new window)
  • Docker

  • Jenkins

    • Jenkins - 介绍
    • 从零开始用Jenkins自动构建部署SpringBoot项目
    • 2020 Jenkins 总结
      • Coding Jenkins
      • Jenkins Pipeline
      • Jenkins之得到上次构建选择的分支
      • jenkins流水线脚本
      • Jenkins自定义主题
      • Jenkins部署 jar包形式
      • Jenkins部署笔记
    • k8s
    • DevOps
    • Jenkins
    pursuewind
    2020-11-22
    目录

    2020 Jenkins 总结

    # docker-compose.yml

    version: '3.1'
    services:
      jenkins:
        restart: always
        image: jenkins/jenkins
        container_name: jenkins
        ports:
          - 8080:8080
          - 50000:50000
        environment:
          TZ: Asia/Shanghai
          JAVA_OPTS: "-Dhudson.model.DownloadService.noSignatureCheck=true"
        volumes:
          - ./data:/var/jenkins_home
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    手动新建 data 目录

    mkdir data
    
    1

    修改data 目录权限

    chmod 777 data
    
    1

    启动:docker-compose up -d

    启动之后,打开Jenkins:http://192.168.1.210:8080/

    进入Jenkins容器获取密码

    docker exec -it -u root jenkins  bash
    
    cat /var/jenkins_home/secrets/initialAdminPassword
    
    1
    2
    3

    输入密码之后,打开另一个浏览器窗口: http://192.168.1.210:8080/pluginManager/advanced

    配置:Update Site 为

    https://jenkins-update.davidz.cn/update-center.json
    
    1

    脚本

    node {
        environment {
            JENKINS_WORKSPACE="/var/jenkins_home/workspace"    //jenkins存放文件的地址
            PROJECT_NAME="${JOB_NAME}"                      // 项目名
            JAR_NAME="xxx.jar"   // 项目生成的jar的名字
            IMAGE_NAME="bnb-system"                    // 镜像名一般和项目名相同
            VERSION_ID="${BUILD_ID}"
        }
        stage('拉取代码') {
            git 'git@code.aliyun.com:gryo-card-new/tuoluo-ecard-enterprise.git'
        }
        
        stage('合并分支') {
    
            def SEL_BRANCHS = "$branchs"
            println SEL_BRANCHS
            
            def tempBranchName = "tempbranch"
            def asList = Arrays.asList(branchs.split(","))
            ArrayList allBranchs = new ArrayList<String>(asList);
            allBranchs.each { branch -> tempBranchName = tempBranchName.concat("#").concat(branch) }
            tempBranchName = tempBranchName.concat("#").concat(System.currentTimeMillis().toString().substring(10))
            
            println "选择的分支为:" + allBranchs
            def firstBranchName = allBranchs.remove(0)
            println "选择第一支分支:" + firstBranchName
            println "临时分支名为:" + tempBranchName
    
    
            sh "git checkout -b ${tempBranchName} origin/${firstBranchName}"
            println "还需要融合的分支有:" + allBranchs
    
            allBranchs.each { branch ->
                sh "git merge origin/${branch} -m 'merge'"
            }
    
            //def pushCommand = "git push --set-upstream origin $tempBranchName"
            //sh "git push --set-upstream origin ${tempBranchName}"
    
            println "==========ok==========="
            
     
        }
        stage('编译打包') {
            sh label: '', script: 'cd card-enterprise-crm-api'
            sh label: '', script: '/var/jenkins_home/env/maven/bin/mvn package -Dmaven.test.skip=true'
    
            //sh label: '', script: 'chmod 777 gradlew'
            //sh label: '', script: './gradlew'
            
        }
        stage('推送并执行') {
            sshPublisher(publishers: [
            sshPublisherDesc(configName: 'local', transfers: [
                    sshTransfer(cleanRemote: false, excludes: '',
                            execCommand:
                                    '''
    
    #!/bin/bash
    BUILD_ID=DONTKILLME
    netstat -tunlp | grep 8093 | awk '{print $7}'|awk -F '/' '{print $1}'
    
    cd /var/jenkins/bixiaoweb/card-enterprise-crm-api/target
    jarname=`ls -t | grep card-enterprise-crm | grep -v 'sources'| awk '{print $1}'|head -n 1`
    
    kill_id=`netstat -tunlp|grep 8093|awk '{print $7}'|awk -F '/' '{print $1}'`
    
    if [ -n "$kill_id" ]
    then
        echo "kill -9 的pid:" $kill_id
        kill -9 $kill_id
    fi
    sleep 1s
    
    echo "==============应用启动 --> ${jarname} ==============" 
    
    source /etc/profile
    nohup java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=28093 /var/jenkins/bixiaoweb/card-enterprise-crm-api/target/${jarname}  --spring.profiles.active=test >> /var/jenkins/bixiaoweb/card-enterprise-crm-api/target/out.log  &
    
    sleep 1s
    tail -f /var/jenkins/bixiaoweb/card-enterprise-crm-api/target/out.log | sed '/com.alibaba.druid.pool.DruidDataSource/Q'
    
                                        
                                    ''',
                            execTimeout: 120000,
                            flatten: false,
                            makeEmptyDirs: false,
                            noDefaultExcludes: false,
                            patternSeparator: '[, ]+',
                            remoteDirectory: '',
                            remoteDirectorySDF: false,
                            removePrefix: '',
                            sourceFiles: '**/card-enterprise-crm-api-*.jar')],
                    usePromotionTimestamp: false,
                    useWorkspaceInPromotion: false,
                    verbose: false)
            ])
            
            println "==========启动完成==========="
        }
    }
    
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    Last Updated: 2023/01/30, 11:01:00
    从零开始用Jenkins自动构建部署SpringBoot项目
    Coding Jenkins

    ← 从零开始用Jenkins自动构建部署SpringBoot项目 Coding Jenkins→

    Theme by Vdoing | Copyright © 2019-2023 pursue-wind | 粤ICP备2022093130号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    • 飙升榜
    • 新歌榜
    • 云音乐民谣榜
    • 美国Billboard榜
    • UK排行榜周榜
    • 网络DJ