pipeline {
    agent {
        kubernetes {
            label "oldbuild-${UUID.randomUUID().toString()}"
            defaultContainer 'jnlp'
            yaml """
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: java6
    image: gitlab.open-xchange.com:4567/jenkins/debian-java6
    imagePullPolicy: Always
    command:
    - cat
    tty: true
  imagePullSecrets:
  - name: gitlab
"""
        }
    }
    options {
        gitLabConnection('Gitlab')
        gitlabBuilds(builds: ['Java 6'])
        timestamps()
    }
    triggers {
        gitlab(triggerOnPush: true, triggerOnMergeRequest: true, branchFilterType: 'All')
        cron '@midnight'
    }
    stages {
        stage('Java 6') {
            options {
                gitlabCommitStatus(name: 'Java 6')
            }
            tools {
                ant 'ant'
            }
            steps {
                container('java6') {
                    sh 'java -version'
                    sh 'ant -version'
                    cleanWs()
                    script {
                        def middleware = checkout([
                            $class: 'GitSCM',
                            branches: [[name: '*/master-7.6.3']],
                            doGenerateSubmoduleConfigurations: false,
                            extensions: [[
                                $class: 'CloneOption',
                                noTags: true,
                                reference: '',
                                shallow: true
                            ]],
                            gitTool: 'Linux',
                            submoduleCfg: [],
                            userRemoteConfigs: [[
                                credentialsId: '2cb98438-7e92-4038-af72-dad91b4ff6be',
                                url: 'https://code.open-xchange.com/git/wd/backend'
                            ]]
                        ])
                        def workspace = pwd()
                        dir('build') {
                            checkout scm
                            sh """ant -f releaseNumbers.xml \
                                -DprojectSets=backend-packages \
                                -DreleaseNotes=\"testing release build\" \
                                -DversionPropFile=${workspace}/releaseVersion.properties \
                                loadProjectSets increaseRevision"""
                            def releaseProperties = readProperties file: "${workspace}/releaseVersion.properties"
                            sh """ant -f obs.xml \
                            -Dbranch=master-7.6.3 \
                            -DReleaseVersion=${releaseProperties.versionNumber} \
                            -DprojectSets=backend-packages \
                            -DfullProductName=backend \
                            -DshortProductName=backend \
                            -Dgitcommit=${middleware.GIT_COMMIT} \
                            -DbuildPropFile=${workspace}/buildsystem.properties \
                            determineProject createProject deleteObsoletePackages"""
                            try {
                                sh """ant -f buildAll.xml \
                                -Dbranch=master-7.6.3 \
                                -DReleaseVersion=${releaseProperties.versionNumber} \
                                -DprojectSets=backend-packages \
                                -DfullProductName=backend \
                                -DshortProductName=backend \
                                -Dgitcommit=${middleware.GIT_COMMIT} \
                                determineProject upload"""
                                sh 'rm -rf tmp'
                                sh """ant -f obs.xml \
                                -Dbranch=master-7.6.3 \
                                -DReleaseVersion=${releaseProperties.versionNumber} \
                                -DprojectSets=backend-packages \
                                -DfullProductName=backend \
                                -DshortProductName=backend \
                                -Dgitcommit=${middleware.GIT_COMMIT} \
                                determineProject wait4Project"""
                                sh """ant -f buildAll.xml \
                                -Dbranch=master-7.6.3 \
                                -DReleaseVersion=${releaseProperties.versionNumber} \
                                -DprojectSets=backend-packages \
                                -DfullProductName=backend \
                                -DshortProductName=backend \
                                -Dgitcommit=${middleware.GIT_COMMIT} \
                                -DdebDir=${workspace}/deb \
                                determineProject fetch"""
                            } finally {
                                sh """ant -f obs.xml \
                                -Dbranch=master-7.6.3 \
                                -DReleaseVersion=${releaseProperties.versionNumber} \
                                -DprojectSets=backend-packages \
                                -DfullProductName=backend \
                                -DshortProductName=backend \
                                -Dgitcommit=${middleware.GIT_COMMIT} \
                                determineProject deleteProject"""
                            }
                        }
                    }
                }
            }
        }
    }
}
