diff --git a/build/Jenkinsfile.branch b/build/Jenkinsfile.branch deleted file mode 100644 index 83f7be01c8..0000000000 --- a/build/Jenkinsfile.branch +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/env groovy - -@Library('shared-pipelines') _ -import org.mattermost.Utils -import java.util.*; -def utils = new org.mattermost.Utils() -def build = new org.mattermost.BuildCommands() -def platformStages = new org.mattermost.PlatformStages() - -def rndEE = UUID.randomUUID().toString() -def rndTE = UUID.randomUUID().toString() -def mmBuilderServer = 'mattermost/mattermost-build-server:20201119_golang-1.15.5' -def mmBuilderWebapp = 'mattermost/mattermost-build-webapp:oct-2-2018' - -pipeline { - agent { - label 'default-mm-builder' - } - - options { - buildDiscarder(logRotator(daysToKeepStr: '15')) - timeout(time: 2, unit: 'HOURS') - } - - environment { - COMPOSE_PROJECT_NAME="${rnd}-${env.BUILD_NUMBER}" - GOPATH = "/go" - } - - stages { - stage('Setup') { - steps { - script { - platformStages.platformEcho() - } - } - } - - stage('Build') { - failFast true - parallel { - stage ('Build EE') { - agent { - label 'default-mm-builder' - } - steps { - script { - forcefullyCleanWorkspace(mmBuilderServer) - platformStages.platformCheckoutTE(env.BRANCH_NAME) - platformStages.platformCheckoutEE(env.BRANCH_NAME) - platformStages.platformCheckoutRedux(env.BRANCH_NAME) - platformStages.platformCheckoutEEGOSaml('release-5.x') - platformStages.platformCheckoutEEGOXML('release-5.x') - platformStages.platformCheckoutEEGOXMLDsig('release-5.x') - SERVER_GIT_COMMIT=platformStages.platformServerCommitHash() - try { - platformStages.after5Dot20AddGOBINBuild(env.BRANCH_NAME + '.' + env.BUILD_NUMBER + '.' + SERVER_GIT_COMMIT, rndEE, false, mmBuilderServer, mmBuilderWebapp) - } finally { - platformStages.platformPublishResults() - platformStages.platformCleanDockerCompose(rndEE) - } - } - stash includes: 'src/github.com/mattermost/mattermost-server/dist/**', name: 'eedist' - } - } - stage ('Build TE') { - agent { - label 'default-mm-builder' - } - steps { - script { - forcefullyCleanWorkspace(mmBuilderServer) - platformStages.platformCheckoutTE(env.BRANCH_NAME) - platformStages.platformCheckoutRedux(env.BRANCH_NAME) - SERVER_GIT_COMMIT=platformStages.platformServerCommitHash() - try { - platformStages.after5Dot20AddGOBINBuild(env.BRANCH_NAME + '.' + env.BUILD_NUMBER + '.' + SERVER_GIT_COMMIT, rndTE, false, mmBuilderServer, mmBuilderWebapp) - } finally { - platformStages.platformPublishResults() - platformStages.platformCleanDockerCompose(rndTE) - } - } - stash includes: 'src/github.com/mattermost/mattermost-server/dist/**', name: 'tedist' - } - } - } - } - - stage ('Push EE') { - steps { - node('master') { - forcefullyCleanWorkspace(mmBuilderServer) - unstash 'eedist' - script { - platformStages.pushToS3('mattermost-platform/' + env.BRANCH_NAME, 'mattermost-enterprise-*',false) - } - } - } - } - stage ('Push TE') { - steps { - node('master') { - forcefullyCleanWorkspace(mmBuilderServer) - unstash 'tedist' - script { - platformStages.pushToS3('mattermost-platform/' + env.BRANCH_NAME, 'mattermost-team-*',false) - } - } - } - } - stage ('CleanCloudfront') { - steps { - node('master') { - script { - platformStages.cleanCloudfrontCache('mattermost-platform/' + env.BRANCH_NAME) - } - } - } - } - - stage ('Build Docker Images') { - agent { - label 'default-mm-builder' - } - steps { - script { - forcefullyCleanWorkspace(mmBuilderServer) - platformStages.platformCheckoutTE(env.BRANCH_NAME) - } - dir('src/github.com/mattermost/mattermost-server') { - withCredentials([usernamePassword(credentialsId: 'matterbuild-docker-hub', usernameVariable: 'DOCKER_USER', passwordVariable: 'DOCKER_PASS')]) { - sh 'docker login --username ${DOCKER_USER} --password ${DOCKER_PASS}' - sh """ - export TAG='${env.BRANCH_NAME}' - docker build --no-cache --build-arg MM_PACKAGE=https://releases.mattermost.com/mattermost-platform/${env.BRANCH_NAME}/mattermost-enterprise-linux-amd64.tar.gz -t mattermost/mattermost-enterprise-edition:\${TAG} -t mattermost/mattermost-enterprise-edition:${GIT_COMMIT} build - docker push mattermost/mattermost-enterprise-edition - """ - sh """ - export TAG='${env.BRANCH_NAME}' - docker build --no-cache --build-arg MM_PACKAGE=https://releases.mattermost.com/mattermost-platform/${env.BRANCH_NAME}/mattermost-team-linux-amd64.tar.gz -t mattermost/mattermost-team-edition:\${TAG} -t mattermost/mattermost-team-edition:${GIT_COMMIT} build - docker push mattermost/mattermost-team-edition - docker logout - """ - } - } - } - } - } - - post { - cleanup { - forcefullyCleanWorkspace(mmBuilderServer) - } - } -} - - -def forcefullyCleanWorkspace(String imageToUse) { - return withDockerContainer( - image: imageToUse, - args: '-u root' - ) { - ansiColor('xterm') { - sh """#!/bin/bash -e - if [ -d "\$WORKSPACE" ] - then - rm -rfv \$WORKSPACE/* - fi - """ - } - } -} diff --git a/build/README.md b/build/README.md index 3fbf1b5828..efdccbb630 100644 --- a/build/README.md +++ b/build/README.md @@ -1,6 +1,6 @@ ## About this folder -This folder contains some files that we use to build the `mattermost-server` using `Jenkins` and other files like privacy policy and licenses. +This folder contains some files that we use to build the `mattermost-server` and other files like privacy policy and licenses. The `Dockerfile` in this folder (`Dockerfile.buildenv`) is the build environment for our current builds you can find the docker image to download [here](https://hub.docker.com/r/mattermost/mattermost-build-server/tags/) or build your own.