侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

Thoughtworks公司pipeline脚本

2023-11-29 星期三 / 0 评论 / 0 点赞 / 50 阅读 / 6126 字

Thoughtworks公司pipe_script脚本 env.SCM_URL = "[email protected]:root/HNA-Brightness.gi

.

Thoughtworks公司pipe_script脚本

.
env.SCM_URL            = "[email protected]:root/HNA-Brightness.git"env.SCM_CREDENTIALS    = "080207fb-ee29-47be-b228-66cbd8fd801a"env.BUILD_IMAGE_CORE   = "brightness/core"env.BUILD_IMAGE_FRONT  = "brightness/front"env.BUILD_VERSION      = nullenv.REPO_CREDENTIALS   = "registry-login"env.REPO_SNAPSHOT      = "http://xa-brightness-1.chinacloudapp.cn:5002"node {   stage 'CHECKOUT'    git  url: "${env.SCM_URL}", credentialsId: "${env.SCM_CREDENTIALS}"    env.BUILD_VERSION = version()    stage 'BUILD WAR'    docker.image('baselibrary/gradle:jdk8').inside('-v /root/.gradle:/root/.gradle -v /usr/sbin/vault:/usr/sbin/vault -v /etc/hosts:/etc/hosts') {      sh 'cd brightness-core&&gradle war -Penv=dev'    }  stage 'COMPASS'    docker.image('baselibrary/nodejs:5').inside('-v /root/.npmrc:/root/.npmrc -v /etc/hosts:/etc/hosts') {      sh 'npm install&&npm run build'    }  stage 'PACKAGE'      sh '''         cp config/coreDockerfile Dockerfile      '''      def dockerImageCore = docker.build("${env.BUILD_IMAGE_CORE}:${env.BUILD_NUMBER}")       sh '''         cp config/frontendDockerfile Dockerfile      '''      def dockerImageFRONT = docker.build("${env.BUILD_IMAGE_FRONT}:${env.BUILD_NUMBER}")    stage 'PUBLISH'      docker.withRegistry("${env.REPO_SNAPSHOT}", "${env.REPO_CREDENTIALS}") {        dockerImageCore.push("${env.BUILD_NUMBER}")      }      docker.withRegistry("${env.REPO_SNAPSHOT}", "${env.REPO_CREDENTIALS}") {        dockerImageFRONT.push("${env.BUILD_NUMBER}")      }    stage 'DEPLOY'      env.RANCHER_STACK      = "brightness-DEV"      sh "sed -i 's#%BUILD_IMAGE_CORE%#${env.BUILD_IMAGE_CORE}:${env.BUILD_NUMBER}#g' config/docker-compose.yml"      sh "sed -i 's#%BUILD_IMAGE_FRONT%#${env.BUILD_IMAGE_FRONT}:${env.BUILD_NUMBER}#g' config/docker-compose.yml"      sh '''      cd config&&rancher-compose  -p $RANCHER_STACK up -d -c --upgrade'''    stage 'ARCHIVE'      archive 'brightness-data-service/build/libs/brightness-data-service-*.jar'      archive 'brightness-core/build/libs/brightness-core-*.war'      archive 'dist/*'}/*node{  stage 'CHECKOUT TEST '    git  url: "${env.SCM_URL_TEST}", credentialsId: "${env.SCM_CREDENTIALS}"   stage "Functional Test"  docker.image('baselibrary/ruby:2.5').inside('-e DOMIAN=dev -v /etc/hosts:/etc/hosts') {      sh 'cucumber features --tags=@e2e DOMAIN=dev'    }}*/ def version() {  def matcher = readFile('brightness-core/build.gradle') =~ 'version = /'(.*)/''  matcher ? matcher[0][1] : null}

 

.

pipeline官方提供的脚本

.
// Run this on the master node:node  {    // The JDK is configured as a tool with the name 'jdk-8u77' in the Jenkins 'Global Tool Configuration'    env.JAVA_HOME="${tool 'jdk-8u77'}"    env.PATH="${env.JAVA_HOME}/bin:${env.PATH}"      // Maven is configured as a tool with the name 'M3' in the Jenkins 'Global Tool Configuration'.    def mvnHome = tool 'M3'         stage 'Checkout'    // Configure the credential in Jenkins, and use the credential's ID in the following step:    git url: 'ssh://[email protected]/fs/fs-knowledge-editor.git', credentialsId: '8dbfb6d2-2549-4c6e-9a6e-994ae8797efc'          stage 'Build and tag'    // Define the version of this build.    // BASE_VERSION is defined as a build parameter in the UI definition of the job.    // Note how Groovy code is used to format the number of the current build.    def version = "${BASE_VERSION}-J2TEST-" + currentBuild.number.toString().padLeft(4,'0')    // Execute the maven command as a shell command step. On Windows, a 'bat'-step would be used instead.    sh "${mvnHome}/bin/mvn clean verify -f KnowledgeEditor/pom.xml -Dfs.version=${version}"    // Archive the zip file for access in through the Jenkins UI, or for other uses.    archive 'KnowledgeEditor/com.computas.fs.ke.products/target/products/*.zip'          // Each build is tagged with an annotated tag.    // There is no pipeline plugin for this (the Git Publisher plugin is not compatible),    // so everything has to be implemented using shell commands.    // First, we have to configure git with the mandatory user information:    sh "git config user.name /"Jenkins Pipeline/""    sh "git config user.email [email protected]"    // Next, tag this commit.    def msg = "/"Automatically created tag ${version}/""    sh "git tag -a -m ${msg} ${version}"    // Finally, push to the repo.    // For this to work, the ssh keys must be available in Jenkins' ~/.ssh folder    sh "git push origin ${version}"         // Send a mail to the person responsible for manual testing and release.    mail subject: 'A new version of KEIII is available for testing.',        body: 'A new version of KEIII is available for testing and approval of release.',        charset: 'utf-8',        from: '[email protected]',        mimeType: 'text/plain',        to: '[email protected]'      stage 'Release'    // User input showing up in the Jenkins UI.    // If the timeout is reached, an exception is thrown and the build aborted.    timeout(time: 120, unit: 'SECONDS') {        input message: 'Do you want to release this version, ' +  version + ', of KEIII?', ok: 'Release'    }    // A catch block could deal with the exception.          // In order to release to Nexus, deploy and access information needs to be made available in    // a maven settings file. This configuration is copied into the file defined as    // mavenSettingsFile from the corresponding managed file in Jenkins...    def mavenSettingsFile = "${pwd()}/.m2/settings.xml"          // ... using the configuration file build wrapper:    wrap([$class: 'ConfigFileBuildWrapper',            managedFiles: [                [fileId: '85adba0c-908b-4dbf-b3aa-65fe823e8984',                targetLocation: "${mavenSettingsFile}"]]]) {        // deploy to Nexus        sh "${mvnHome}/bin/mvn deploy -s ${mavenSettingsFile} -f KnowledgeEditor/pom-deploy.xml -Dfs.version=${version}"    }}

 

广告 广告

评论区