ci/build.groovy
author Jan Vrany <jan.vrany@labware.com>
Tue, 23 Jun 2020 12:16:02 +0100
changeset 294 0f3980335d2b
parent 292 00d3840350c2
child 295 a04034567c92
permissions -rw-r--r--
CI: do not archive (and publish) i686 versions any more 32bit Intel is phasing out already - Microsoft is dropping i686 Windows 10, many Linux distros are dropping i686 architecture too. We still build and test 32bit versions, but no longer archive it nor publish it to save space and bandwidth. We might make it available again upon request.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
222
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
/*
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
 * Run default pipeline. See `steps.groovy` for details.
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
 */
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
def steps;
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
/*
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
 * A helper function to return a branch to build.
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
 *
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
 * For normal jobs this is the value of 'Branch' field from SCM configuration.
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
 * For multibranch jobs, this is the value of BRANCH_NAME environment variable.
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
 *
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
 * This is the same as build() function in `steps.groovy` and should be kept
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
 * in sync. We cannot use the one there as we yet have to load it.
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
 */
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
def branch() {
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    if (env.BRANCH_NAME == null) {
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
        return scm.getBranch();
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
    } else {
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
        return env.BRANCH_NAME;
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    }
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
}
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
stage ( "Load Pipeline") {
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
    node {
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
        /*
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
         * Do not use default workspace here as checkout
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
         * would erase all contents. Use a dedicated
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
         * workspace instead
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
         */
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
        ws ("workspace/${env.JOB_NAME}@loadpipeline") {
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
            sshagent([ scm.getCredentialsId() ]) {
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
                sh  """
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
                    if [ -f ci/steps.groovy ]; then
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
                        hg pull --ssh ssh ${scm.getSource()}
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
                    else
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
                        hg clone --ssh ssh ${scm.getSource()} .
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
                    fi
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
                    hg up ${branch()}
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
                    """
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
            }
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
            steps = load "ci/steps.groovy"
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
        }
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    }
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
}
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
/*
292
00d3840350c2 CI: use different files for different pipelines...
Jan Vrany <jan.vrany@labware.com>
parents: 222
diff changeset
    48
 * Set the branch to build to make sure it's in sync...
222
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
 */
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
steps.branch = branch()
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
/*
292
00d3840350c2 CI: use different files for different pipelines...
Jan Vrany <jan.vrany@labware.com>
parents: 222
diff changeset
    53
 * ...and fire the pipeline
222
80f098bd53ca CI: moved CI-related files to (new) subdirectory `ci`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
 */
292
00d3840350c2 CI: use different files for different pipelines...
Jan Vrany <jan.vrany@labware.com>
parents: 222
diff changeset
    55
steps.build()