pipeline.groovy
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 07 Jan 2017 00:19:00 +0000
changeset 115 3b8372e82acd
parent 114 49b4eba5aff6
child 128 1433658a3853
permissions -rw-r--r--
CI: On *NIX nodes, start Xvfb to allow for UI testing To test UI we need a running X server on UNIX node, so run Xvfb on these. On Windows, slave provess must be run in way it has access to an interactive window station. This cannot be done within Jenkins so rely on admins to set it up correctly (sigh)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
/*
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 * Jenkins Pipeline definitions for Smalltalk/X jv-branch
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
 *
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
 * Following pipelines are defined here:
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
 *
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
 *  * `build()` - compiles and tests all supported configurations
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
 *    No artifacts are archived
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 *
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 *  * `integration()` - like `build()` pipeline, then all test pass on all
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 *    configurations, archive artifacts and push staged changes to opstream.
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
 */
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    13
import com.cloudbees.plugins.credentials.CredentialsProvider;
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    14
import com.cloudbees.plugins.credentials.common.StandardUsernameCredentials;
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    15
import com.cloudbees.jenkins.plugins.sshcredentials.SSHUserPrivateKey;
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    17
/**
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    18
 * Supported configurations. To overwrite, do:
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    19
 *
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    20
 *     ...
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    21
 *     pipeline = load "pipeline.groovy"
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    22
 *     ...
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    23
 *     pipeline.configurations = [ 'NODE': 'qnx', 'ARCH' : 'mips' ]
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    24
 *     ...
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    25
 *
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    26
 * Default value: see below.
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
 */
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
configurations = [
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
    'NODE': ['windows' , 'linux' ],
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    'ARCH': ['i386', 'x86_64' ]
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
]
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    33
/** Branch to build. To overwrite do:
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    34
 *
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    35
 *     ...
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    36
 *     pipeline = load "pipeline.groovy"
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    37
 *     ...
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    38
 *     pipeline.branch = "issue-123"
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    39
 *     ...
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    40
 *
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    41
 * Default value:
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    42
 * For multibranch jobs, this is the value of BRANCH_NAME environment variable.
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    43
 * For normal jobs this is the value of 'Branch' field from SCM configuration.
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    44
 *
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    45
 * Due to Jenkins internals, the fallback to use SCM configuration must be done
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    46
 * by 'user' of this variable (i.e., use `branch != null ? branch : scm.getBranch())
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    47
 */
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    48
branch = env.BRANCH_NAME
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    49
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    50
/**
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    51
 * Workspace to use. To overwrite do:
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    52
 *
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    53
 *     ...
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    54
 *     pipeline = load "pipeline.groovy"
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    55
 *     ...
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    56
 *     pipeline.workspace = "some-other-job"
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    57
 *     ...
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    58
 *
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    59
 * Default value:
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    60
 * Name of current job.
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    61
 */
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    62
workspace = env.JOB_NAME
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
/*
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
 * "Default" pipeline:
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
 */
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
def build() {
70
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    68
    stage ( "Build" ) {
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    69
        matrix ( configurations ) {
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    70
            stage ( "Checkout - {${env.NODE}-${env.ARCH}} " ) {
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    71
                sshagent([ scm.getCredentialsId() ]) {
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    72
                    sh  """
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    73
                        if [ -f Jenkinsfile.rb ]; then
103
fda494c2564b CI: Pass `--ssh ssh` option to hg when checking out / updating rakefiles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 96
diff changeset
    74
                            hg pull --ssh ssh ${scm.getSource()}
70
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    75
                        else
103
fda494c2564b CI: Pass `--ssh ssh` option to hg when checking out / updating rakefiles
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 96
diff changeset
    76
                            hg clone --ssh ssh ${scm.getSource()} .
70
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    77
                        fi
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    78
                        hg up ${branch != null ? branch : scm.getBranch()}
70
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    79
                        """
90
9f574fad295d When building under CI throw an error if repositoryset is explicitly defined
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 70
diff changeset
    80
                    sh  "ruby Jenkinsfile.rb --project \"stx:jv-branch\" --arch ${env.ARCH}  update"
70
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    81
                }
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    82
            }
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    83
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    84
            stage ( "Compile - {${env.NODE}-${env.ARCH}}") {
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    85
                sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" compile"
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
            }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
        }
70
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    88
    }
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
70
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    90
    stage ( "Test" ) {
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    91
        matrix ( configurations ) {
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
    92
            stage ( "Test - {${env.NODE}-${env.ARCH}}") {
115
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
    93
                /*
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
    94
                 * Some tests requires display, so:
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
    95
                 *
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
    96
                 *  * on *NIX hosts, launch Xvfb
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
    97
                 *  * on Windows, do nothing. Windows slave must be configured
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
    98
                 *    so it has an access to interactive window station (which
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
    99
                 *    means it has to run under user session, not as a service)
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   100
                 */
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   101
                if ( isUnix() ) {
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   102
                    wrap([$class: 'Xvfb', additionalOptions: '-screen 0 1024x768x24 -pixdepths 24 4 8 15 16 32', parallelBuild: true]) {
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   103
                        sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" test"
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   104
                    }
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   105
                } else {
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   106
                    sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" test"
3b8372e82acd CI: On *NIX nodes, start Xvfb to allow for UI testing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 114
diff changeset
   107
                }
70
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   108
                junit allowEmptyResults: true, testResults: "reports/*build${env.BUILD_NUMBER}*.xml"
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   109
            }
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
        }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
}
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
/*
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
 * "Integration" pipeline
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
 */
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117
def integration() {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   118
    build()
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   119
    /*
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   120
     * If a single test fails, abort the pipeline. There's no point
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   121
     * archiving a broken build.
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   122
     */
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   123
    println "Smalltalk/X built, job status is: ${currentBuild.result}"
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   124
    if (currentBuild.result == 'UNSTABLE') {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   125
        return;
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   126
    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   127
    artifacts()
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   128
    push()
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   129
}
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   130
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   131
def combine(configurations, axes = null, axis = 0, partial = new HashMap(), combinations = []) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   132
    def axes0 = axes
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   133
    if (axes0 == null) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   134
        axes0 = configurations.keySet().toArray();
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   135
    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
    if ( axis < axes0.length ) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
        for ( value in configurations[axes0[axis]] ) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   138
            def combined = partial.clone()
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   139
            combined[axes0[axis]] = value
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   140
            combine(configurations, axes0, axis + 1, combined, combinations)
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
        }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
    } else {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
        combinations.add(partial)
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   145
    return combinations;
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
}
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
def matrix(configurations, block) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
    def combinations = combine(configurations).toArray()
70
8e73f248c6d4 Changed logic used to check whether to checkout or download stc and librun:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 69
diff changeset
   151
    def branches = [failFast: true]
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   152
    for (i = 0; i < combinations.length; i++) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
        def index = i
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   154
        def conf = combinations[i];
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   155
        branches["${conf.NODE}-${conf.ARCH}"] = {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   156
            node ( conf.NODE ) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
                def newEnv = []
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   158
                for (k in conf.keySet()) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   159
                    newEnv.add("${k}=${conf[k]}")
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   160
                }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   161
                withEnv ( newEnv ) {
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   162
                    ws ("workspace/${workspace}/${env.ARCH}") {
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   163
                        block()
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   164
                    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   165
                }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   166
            }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   167
        }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   168
    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   169
    parallel branches
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   170
}
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   171
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   172
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   173
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   174
def any(configurations, block) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   175
    def axes = configurations.keySet().toArray()
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   176
    def conf = [:]
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   177
    for (axis in axes) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   178
        conf[axis] = configurations[axis][0]
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   179
    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   180
    node ( conf.NODE ) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   181
        def newEnv = []
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   182
        for (k in conf.keySet()) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   183
            newEnv.add("${k}=${conf[k]}")
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   184
        }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   185
        withEnv ( newEnv ) {
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   186
            ws ("workspace/${workspace}/${env.ARCH}") {
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   187
                block()
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   188
            }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
        }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
}
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
def artifacts() {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   195
    matrix ( configurations ) {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
        stage ( "Artifacts - {${env.NODE}-${env.ARCH}}") {
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
            sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" artifacts"
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   198
            archiveArtifacts artifacts: "artifacts/*build${env.BUILD_NUMBER}*.zip, artifacts/*build${env.BUILD_NUMBER}*.bz2, artifacts/*build${env.BUILD_NUMBER}*.sha256", fingerprint: true//, onlyIfSuccessful: true
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
        }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   200
    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
}
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   202
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   203
/**
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   204
 * Push changes to upstream reporitory. To be called after a successful
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   205
 * build. See #build()
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   206
 */
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   207
def push() {
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
    any ( configurations ) {
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   209
        stage ( "Push to upstream" ) {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   210
            /*
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   211
             * Kludge: This stage may push changes to public BitBucket
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   212
             * repositories. To access repos on BitBucket, I (JV) don't
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   213
             * want to use the same key / password as for checkouts from
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   214
             * staging repositories,
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   215
             *
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   216
             * Therefore, also look for another credentials with ID
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   217
             * `workflow:push-upstream`. If it exists, then use these to
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   218
             * push to upstrem repository. If no such credentials exist,
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   219
             * use standard credentials.
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   220
             *
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   221
             * So, here we go:
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   222
             */
114
49b4eba5aff6 CI: Changed credentials ID for pushing changes to `workflow-push-upstream`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
   223
            def id1 = "workflow-push-upstream";
106
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   224
            def id2 = scm.getCredentialsId();
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   225
            def credentials = null;
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   226
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   227
            for (StandardUsernameCredentials c : CredentialsProvider.lookupCredentials(StandardUsernameCredentials.class)) {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   228
              if (c.getId().equals(id1)) {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   229
                credentials = c;
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   230
                break;
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   231
              }
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   232
            }
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   233
            if (credentials == null) {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   234
              for (StandardUsernameCredentials c : CredentialsProvider.lookupCredentials(StandardUsernameCredentials.class)) {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   235
                if (c.getId().equals(id2)) {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   236
                  credentials = c;
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   237
                  break;
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   238
                }
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   239
              }
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   240
            }
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   241
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   242
            println "Using credentials ${credentials.getId()}: ${credentials.getDescription()}"
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   243
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   244
            if (credentials instanceof SSHUserPrivateKey) {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   245
                sshagent([ credentials.getId() ]) {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   246
                    sh "rake \"workflow:push-upstream\""
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   247
                }
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   248
            } else {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   249
                withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: credentials.getId(), passwordVariable: 'pass', usernameVariable: 'user']]) {
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   250
                    sh "rake \"workflow:push-upstream[${user}, ${pass}]\""
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   251
                }
af335c19cc3b CI: Allow to use different credentials to push to upstream
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   252
            }
69
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   253
        }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   254
    }
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
}
23cdc822cfc5 Initial support for Jenkins pipelines.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
96
12b2d2bbd417 Merged changes from branch feature-block-in-context
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 90 80
diff changeset
   257
return this;