jenkins持续集成jenkinsfile

 

node {
    stage("clean") {
        cleanWs()
    }
    def mvnHome = env.MAVEN_HOME
    stage('Preparation') {
        checkout([$class                           : 'GitSCM',
                  branches                         : [[name: "*/${env.GIT_BRANCH}"]],
                  doGenerateSubmoduleConfigurations: false, extensions: [],
                  submoduleCfg                     : [],
                  userRemoteConfigs                : [[credentialsId: 'db7c9c34-97d4-4a90-916d-6cb9a53b2a17', url: 'git@192.168.31.130:xx/xx.git']]
        ])
    }
    if (env.IS_MODIFY_VERSION == "true") {
        stage('modify_version') {
            sh "mvn versions:set -DoldVersion=* -DnewVersion=${XX_VERSION} -DprocessAllModules=true -DallowSnapshots=true"
        }
        stage("version_commit") {
            if ("$GIT_BRANCH" != "null") {
                sh """
            git status
            git config --global user.name "wangzhu"
            git config --global user.email "wangzhu@xx.com"
            git add -u
            git commit -m "modify_version"
            git push origin HEAD:refs/heads/$GIT_BRANCH
            """
            }
        }
        stage("deploy") {
            sh "mvn clean deploy -Dmaven.test.skip=ture"
        }
    }
    stage('Build') {
        if (isUnix()) {
            sh "'${mvnHome}/bin/mvn' -Dmaven.test.skip=ture -Dmaven.test.failure.ignore clean package "
        } else {
            bat(/"${mvnHome}\bin\mvn" -Dmaven.test.skip=ture -Dmaven.test.failure.ignore clean package /)
        }
    }
    stage('docker_build') {
        parallel auth: {
            sh 'docker build --build-arg APOLLO_ENV=${APOLLO_ENV} --build-arg APOLLO_META=${APOLLO_META} --build-arg xx_VERSION=${xx_VERSION} -t 192.168.31.201:5000/xx-auth-server ./xx-auth-server'
            sh 'docker push 192.168.31.201:5000/xx-auth-server'
        }, zuul: {
            sh 'docker build --build-arg APOLLO_ENV=${APOLLO_ENV} --build-arg APOLLO_META=${APOLLO_META} --build-arg xx_VERSION=${xx_VERSION} -t 192.168.31.201:5000/xx-zuul-server ./xx-zuul-server'
            sh 'docker push 192.168.31.201:5000/xx-zuul-server'
        }
    }
    stage("docker_run") {
        sh """
           docker-compose down 
           docker-compose up -d
           """
    }
    stage('Results') {
        junit '**/target/surefire-reports/TEST-*.xml'
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins 是一个非常流行的持续集成和持续部署工具,他可以自动化地构建、测试和部署代码。在 Jenkins 中,你可以使用 Groovy 等编程语言编写脚本进行持续集成。下面我将介绍一些编写 Jenkins 持续集成脚本的基本步骤。 1. 安装 Jenkins 你需要先安装 Jenkins,并且配置好所需的插件。安装 Jenkins 的具体步骤可以参考官方文档。 2. 创建一个新的 Jenkins 任务 在 Jenkins 中,你可以创建一个新的任务来执行你的持续集成脚本。在创建任务时,你需要指定你的代码仓库的位置和一些其他的配置。 3. 编写 JenkinsfileJenkins 中,你可以使用 Jenkinsfile 来定义你的持续集成流程。Jenkinsfile 是一个文本文件,其中包含了 Jenkins 脚本的定义。在 Jenkinsfile 中,你可以定义多个阶段,每个阶段都可以包含多个步骤。例如,你可以定义一个阶段来执行代码构建,另一个阶段来执行单元测试,还可以定义一个阶段来执行部署。 以下是一个简单的 Jenkinsfile 示例: ``` pipeline { agent any stages { stage('Build') { steps { sh 'npm install' sh 'npm run build' } } stage('Test') { steps { sh 'npm run test' } } stage('Deploy') { steps { sh 'npm run deploy' } } } } ``` 在这个示例中,我们定义了三个阶段:Build、Test 和 Deploy。Build 阶段中我们执行了两个步骤:安装依赖和构建代码。Test 阶段中我们执行了单元测试。最后,在 Deploy 阶段中,我们执行了部署操作。 4. 执行 Jenkins 任务 当你完成了 Jenkinsfile 的编写后,你可以执行 Jenkins 任务来实现持续集成。在执行任务时,Jenkins 会按照 Jenkinsfile 中定义的流程,自动化地执行构建、测试和部署操作。 总的来说,这些就是编写 Jenkins 持续集成脚本的基本步骤。当然,在实际应用中,你可能需要根据你的具体需求,编写更加复杂的 Jenkinsfile

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值