pipeline.groovy
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 01 Feb 2017 23:19:29 +0000
branchfeature-block-in-context
changeset 161 cfc0b59da7a9
parent 115 3b8372e82acd
child 128 1433658a3853
permissions -rw-r--r--
Fixed spec to use feature-block-in-context branch of stx:goodies/regression
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;