一个简单的Jenkins流水线配置

上次使用了脚本来进行项目构建和发布;

这次使用Jenkins来干同样一件事。

直接上代码,具体含义请查询相关文档:

try {
    node {
        stage('Environment') {
            env.JAVA_HOME="${tool 'Java'}"
            env.PATH="${env.PATH}:${JAVA_HOME}/bin:${tool 'Gradle'}/bin"
            echo "PATH=${PATH}"
            echo "USER_HOME=${USER_HOME}"
        }
        stage('Source') {
            git branch: 'master', credentialsId: '9e133113-0dda-4072-8d4a-2477e5fc9bf1', url: 'https://github.com/ohmmx/testproject.git'
        }
        stage('Build') {
            sh "gradle :prj-tomcat:war :prj-springboot:bootJar"
            sh "cp -f ${JENKINS_HOME}/workspace/jenkins-project/prj-tomcat/build/libs/prj-tomcat.war ${USER_HOME}/deploy/tomcat/webapps/ROOT.war"
            sh "cp -f ${JENKINS_HOME}/workspace/jenkins-project/prj-springboot/build/libs/prj-springboot.jar ${USER_HOME}/deploy/prj-springboot.jar"
        }
    }
} catch (err) {
    currentBuild.result = "FAILURE"
    echo err
} finally {
    node {
        stage('Stop') {
            sh "fuser -k 8080/tcp || true"
            sh "fuser -k 9080/tcp || true"
        }
        stage('Start') {
            parallel (
                tomcat: {
                    echo "Ready to start prj-tomcat ......"
                    sh "JENKINS_NODE_COOKIE=dontKillMe ${USER_HOME}/deploy/tomcat/bin/startup.sh"
                },
                springboot: {
                    echo "Ready to start prj-springboot ......"
                    sh "JENKINS_NODE_COOKIE=dontKillMe nohup java -Dprofile=dev -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=29080 -Dserver.port=9080 -jar ${USER_HOME}/deploy/prj-springboot.jar &"
                }
            )
        }
    }
}

其中:

credentialsId 是在 Jenkins 里配置 Git 的用户名密码后,由 Jenkins 生成的用户ID。

JENKINS_HOME 路径默认为 /var/lib/jenkins/

jenkins-project 为 Jenkins 任务的名称(建议不要使用中文)

此条目发表在JAVA分类目录,贴了, , 标签。将固定链接加入收藏夹。