aboutsummaryrefslogtreecommitdiff
path: root/jenkins/job-suite-generator.groovy
blob: 9ef3e08600af3525df4b9afac221baf04d594be0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Top-level pipeline job that provides parameterized machinery for
// creating one or more build job suites for use in building AstroConda
// package sets.
// Uses Job-DSL plugin.

// Directory into which supporting libraries are stored. Gets added to
// groovy classpath definition prior to imports.
this.ldir = "libs"

node("master") {

    stage("Prep") {
        // Delete any existing job workspace directory contents.
        deleteDir()

        // These variables are provided by the execution of the generator
        // build task with parameters.  Each var is populated by a parameter
        // specification.
        println("manifest_file=${this.manifest_file}")
        println("label=${this.label}")
        println("py_version=${this.py_version}")
        println("build_control_repo=${this.build_control_repo}")
        println("conda_version=${this.conda_version}")
        println("conda_build_version=${this.conda_build_version}")
        println("conda_base_URL=${this.conda_base_URL}")
        println("utils_repo=${this.utils_repo}")

        println("old_jobs_action=${this.old_jobs_action}")
    }

    stage("Setup") {
        sh "mkdir -p ${this.ldir}"
        // Obtain libraries to facilitate job generation tasks.
        dir ("libs") {
            sh "curl -O https://repo1.maven.org/maven2/org/yaml/snakeyaml/1.17/snakeyaml-1.17.jar"
        }
        // Copy files from the implicit checkout of the build_control directory (handled by
        // the job that reads this pipeline script) into the actual workspace of this job so
        // the jobDsl call below will be able to find what it needs.
        sh "cp -r ${env.WORKSPACE}@script/* ."
    }

    stage("Spawn job definitions") {
        jobDsl targets: ["jenkins/generator_DSL.groovy"].join("\n"),
               lookupStrategy: "SEED_JOB",
               additionalClasspath: ["${this.ldir}/*.jar"].join("\n"),
               removeAction: "${this.old_jobs_action}"
    }

}