【jenkins】编写配置spring-boot项目, CI/CD流水线项目


1. 新建项目

 2. 新建流水线项目

 输入名称,选择流水线项目

3. 基础配置

 4. 根据自己需求配置对应参数

 4. 配置触发器

 5. 配置触发器高级选项

 6. 配置高级项目选项-流水线脚本

 7. pipline脚本示例

pipeline {
    agent any 
    stages {
        stage('PreEnv') {
            steps {
                script {
                    rootDir = rootDir
                }
                echo 'rootDir: ${rootDir}'
                sh 'ifconfig'
                sh 'sudo apt install -y openjdk-11-jdk'
                sh 'sudo apt install -y maven'
                sh 'mvn -v'
                sh 'java -version'
                //sh 'which java'
                sh 'sudo update-alternatives --install /usr/local/java/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 3000'
                //sh 'sudo update-alternatives --list java'
                sh 'sudo update-alternatives --auto java'
                //sh 'sudo update-alternatives --display java'
                sh 'java -version'
            }
        }
        stage('Build') { 
            steps {
                echo 'start Build......'
                checkout([$class: 'GitSCM', branches: [[name: '*/test']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'SubmoduleOption', disableSubmodules: true, parentCredentials: false, recursiveSubmodules: false, reference: '', trackingSubmodules: false], [$class: 'RelativeTargetDirectory', relativeTargetDir: 'xxxx']], submoduleCfg: [], userRemoteConfigs: [[url: 'git@xxxx:xxxx/xxxxx.git']]]) 
                sh 'cd $rootDir && ls'
                sh 'cd $rootDir && mvn clean package -DskipTests'
                
            }
        }
        stage('Test') {
            steps {
                sh 'echo start Test........'
                sh 'cd $rootDir'
                writeFile file: 'stop.sh', text: "${STOP_SCRIPT}"
                sh 'ls'
                sh 'sudo bash ./stop.sh'
                sh 'nohup java -jar /home/jenkins/workspace/xxxxx/xxxxx/target/xxxx-0.0.1-SNAPSHOT.jar >> test.log &'
                sh 'ps -ef | grep xxxxx-0.0.1-SNAPSHOT.jar'
                sh 'kill $(ps -ef | grep xxxx-0.0.1-SNAPSHOT.jar | grep -v grep | awk \'{ print $2 }\')'
                sh 'sudo bash ./stop.sh'
                sh 'ps -ef | grep xxxxx-0.0.1-SNAPSHOT.jar'
            }
        }
        stage('Deploy') { 
            steps {
                sh 'echo start Deploy........'
                //sh 'scp /home/jenkins/workspace/xxxxx-test/xxxxx/target/xxxx-0.0.1-SNAPSHOT.jar jenkins@192.168.3.110:/home/xxxxx/xxxx/'
                // TODO execute '/home/xxxx/xxxx/script/upgrade.sh' remotely for redeploy.
                // TODO check redeploy state. 
                
            }
        }
    }
}