github.com/vnforks/kid@v5.11.1+incompatible/build/Jenkinsfile.branch (about) 1 #!/usr/bin/env groovy 2 3 @Library('shared-pipelines') _ 4 import org.mattermost.Utils 5 import java.util.*; 6 def utils = new org.mattermost.Utils() 7 def build = new org.mattermost.BuildCommands() 8 def platformStages = new org.mattermost.PlatformStages() 9 10 def rndEE = UUID.randomUUID().toString() 11 def rndTE = UUID.randomUUID().toString() 12 def mmBuilderServer = 'mattermost/mattermost-build-server:feb-28-2019' 13 def mmBuilderWebapp = 'mattermost/mattermost-build-webapp:oct-2-2018' 14 15 pipeline { 16 agent { 17 label 'default-mm-builder' 18 } 19 20 options { 21 buildDiscarder(logRotator(numToKeepStr: '3')) 22 timeout(time: 2, unit: 'HOURS') 23 } 24 25 environment { 26 COMPOSE_PROJECT_NAME="${rnd}-${env.BUILD_NUMBER}" 27 GOPATH = "/go" 28 } 29 30 stages { 31 stage('Setup') { 32 steps { 33 script { 34 platformStages.platformEcho() 35 } 36 } 37 } 38 39 stage('Build') { 40 failFast true 41 parallel { 42 stage ('Build EE') { 43 agent { 44 label 'default-mm-builder' 45 } 46 steps { 47 script { 48 forcefullyCleanWorkspace(mmBuilderServer) 49 platformStages.platformCheckoutTE(env.BRANCH_NAME) 50 platformStages.platformCheckoutEE(env.BRANCH_NAME) 51 platformStages.platformCheckoutRedux(env.BRANCH_NAME) 52 SERVER_GIT_COMMIT=platformStages.platformServerCommitHash() 53 try { 54 platformStages.newPlatformBuild(env.BRANCH_NAME + '.' + env.BUILD_NUMBER + '.' + SERVER_GIT_COMMIT, rndEE, false, mmBuilderServer, mmBuilderWebapp) 55 } finally { 56 platformStages.platformPublishResults() 57 platformStages.platformCleanDockerCompose(rndEE) 58 } 59 } 60 stash includes: 'src/github.com/mattermost/mattermost-server/dist/**', name: 'eedist' 61 } 62 } 63 stage ('Build TE') { 64 agent { 65 label 'default-mm-builder' 66 } 67 steps { 68 script { 69 forcefullyCleanWorkspace(mmBuilderServer) 70 platformStages.platformCheckoutTE(env.BRANCH_NAME) 71 platformStages.platformCheckoutRedux(env.BRANCH_NAME) 72 SERVER_GIT_COMMIT=platformStages.platformServerCommitHash() 73 try { 74 platformStages.newPlatformBuild(env.BRANCH_NAME + '.' + env.BUILD_NUMBER + '.' + SERVER_GIT_COMMIT, rndTE, false, mmBuilderServer, mmBuilderWebapp) 75 } finally { 76 platformStages.platformPublishResults() 77 platformStages.platformCleanDockerCompose(rndTE) 78 } 79 } 80 stash includes: 'src/github.com/mattermost/mattermost-server/dist/**', name: 'tedist' 81 } 82 } 83 } 84 } 85 86 stage ('Push EE') { 87 steps { 88 node('master') { 89 forcefullyCleanWorkspace(mmBuilderServer) 90 unstash 'eedist' 91 script { 92 platformStages.pushToS3('mattermost-platform/' + env.BRANCH_NAME, 'mattermost-enterprise-*',false) 93 } 94 } 95 } 96 } 97 stage ('Push TE') { 98 steps { 99 node('master') { 100 forcefullyCleanWorkspace(mmBuilderServer) 101 unstash 'tedist' 102 script { 103 platformStages.pushToS3('mattermost-platform/' + env.BRANCH_NAME, 'mattermost-team-*',false) 104 } 105 } 106 } 107 } 108 stage ('CleanCloudfront') { 109 steps { 110 node('master') { 111 script { 112 platformStages.cleanCloudfrontCache('mattermost-platform/' + env.BRANCH_NAME) 113 } 114 } 115 } 116 } 117 118 stage ('Build Docker mattermost-enterprise-edition') { 119 steps { 120 script { 121 platformStages.platformCheckoutDockerRepo('master') 122 def MMBINARYPATH="https://releases.mattermost.com/mattermost-platform/" + env.BRANCH_NAME + "/mattermost-enterprise-linux-amd64.tar.gz" 123 platformStages.platformBuildDockerImage(MMBINARYPATH, env.BRANCH_NAME + '.' + env.BUILD_NUMBER + '.' + SERVER_GIT_COMMIT) 124 } 125 } 126 } 127 } 128 129 post { 130 cleanup { 131 forcefullyCleanWorkspace(mmBuilderServer) 132 } 133 } 134 } 135 136 137 def forcefullyCleanWorkspace(String imageToUse) { 138 return withDockerContainer( 139 image: imageToUse, 140 args: '-u root' 141 ) { 142 ansiColor('xterm') { 143 sh """#!/bin/bash -e 144 if [ -d "\$WORKSPACE" ] 145 then 146 rm -rfv \$WORKSPACE/* 147 fi 148 """ 149 } 150 } 151 }