Changeset 5afeab9 for Jenkinsfile


Ignore:
Timestamp:
Aug 17, 2018, 1:46:35 PM (6 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, no_list, persistent-indexer, pthread-emulation, qualifiedEnum
Children:
c431138
Parents:
155c2a28
Message:

Now using global settings file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Jenkinsfile

    r155c2a28 r5afeab9  
    66node ('master'){
    77
    8         boolean bIsSandbox = env.BRANCH_NAME == "jenkins-sandbox"
    98        def err = null
    109        def log_needed = false
     
    2625                        notify_server(0)
    2726
    28                         final settings = prepare_build()
     27                        final Settings = prepare_build()
    2928
    3029                        clean()
     
    6362        finally {
    6463                //Send email with final results if this is not a full build
    65                 if( !params.Silent ) {
     64                if( !Settings.Silent ) {
    6665                        echo 'Notifying users of result'
    6766                        email(currentBuild.result, log_needed, bIsSandbox)
     
    8079// Helper classes/variables/routines
    8180//===========================================================================================================
    82 //Helper routine to collect information about the git history
    83 def collect_git_info() {
    84 
    85         final scmVars = checkout scm
    86         echo "----------------------------------------"
    87         echo "${scmVars.getClass()}"
    88         echo "scmVars: ${scmVars}"
    89 
    90         //create the temporary output directory in case it doesn't already exist
    91         def out_dir = pwd tmp: true
    92         sh "mkdir -p ${out_dir}"
    93 
    94         //parse git logs to find what changed
    95         gitRefName = env.BRANCH_NAME
    96         sh "git reflog > ${out_dir}/GIT_COMMIT"
    97         git_reflog = readFile("${out_dir}/GIT_COMMIT")
    98         gitRefOldValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][1]
    99         gitRefNewValue = (git_reflog =~ /moving from (.+) to (.+)/)[0][2]
    100 }
    101 
    10281class BuildSettings implements Serializable {
    103         BuildSettings() {
     82        public final CC_Desc Compiler
     83        public final Arch_Desc Architecture
     84        public final Boolean RunAllTests
     85        public final Boolean RunBenchmark
     86        public final Boolean BuildDocumentation
     87        public final Boolean Publish
     88        public final Boolean Silent
     89        public final Boolean IsSandbox
     90        public final String Branch
     91        public final String Commit
     92        public final String PrevCommit
     93        public final String RepoUrl
     94        public final String DescLong
     95        public final String DescShort
     96
     97        BuildSettings(java.util.Collections$UnmodifiableMap param, java.util.TreeMap scmVars) {
     98                echo "${env}"
     99
     100                this.Compiler         = compiler_from_params( params.Compiler )
     101                this.Architecture       = architecture_from_params( params.Architecture )
     102                this.RunAllTests        = params.RunAllTests
     103                this.RunBenchmark       = params.RunBenchmark
     104                this.BuildDocumentation = params.BuildDocumentation
     105                this.Publish            = params.Publish
     106                this.Silent             = params.Silent
     107                this.IsSandbox          = scmVars.GIT_BRANCH == "jenkins-sandbox"
     108                this.Branch             = scmVars.GIT_BRANCH
     109                this.Commit             = scmVars.GIT_COMMIT
     110                this.PrevCommit         = scmVars.GIT_PREVIOUS_COMMIT
     111                this.RepoUrl            = scmVars.GIT_URL
     112
     113                def full = params.RunAllTests ? " (Full)" : ""
     114                this.DescShort = "${ this.Compiler.cc_name }:${ this.Architecture.name }${full}"
     115
     116                this.DescLong """Compiler                : ${ this.Compiler.cc_name } (${ this.Compiler.cpp_cc }/${ this.Compiler.cfa_cc })
     117Architecture            : ${ this.Architecture.name }
     118Arc Flags               : ${ this.Architecture.flags }
     119Run All Tests           : ${ this.RunAllTests.toString() }
     120Run Benchmark           : ${ this.RunBenchmark.toString() }
     121Build Documentation     : ${ this.BuildDocumentation.toString() }
     122Publish                 : ${ this.Publish.toString() }
     123Silent                  : ${ this.Silent.toString() }
     124"""
    104125        }
    105126}
    106127
    107128def prepare_build() {
    108         collect_git_info()
    109 
     129        // prepare the properties
    110130        properties ([                                                                                                   \
    111131                [$class: 'ParametersDefinitionProperty',                                                                \
     
    151171                ]])
    152172
    153         echo "${params.getClass()}"
    154 
    155         compiler         = compiler_from_params( params.Compiler )
    156         crchitecture = architecture_from_params( params.Architecture )
    157 
    158         def full = params.RunAllTests ? " (Full)" : ""
    159         currentBuild.description = "${ compiler.cc_name }:${ architecture.name }${full}"
    160 
    161         echo """Compiler                 : ${ params.Compiler.cc_name } (${ compiler.cpp_cc }/${ compiler.cfa_cc })
    162 Architecture            : ${ architecture.name }
    163 Arc Flags               : ${ architecture.flags }
    164 Run All Tests           : ${ params.RunAllTests.toString() }
    165 Run Benchmark           : ${ params.RunBenchmark.toString() }
    166 Build Documentation     : ${ params.BuildDocumentation.toString() }
    167 Publish                 : ${ params.Publish.toString() }
    168 Silent                  : ${ params.Silent.toString() }
    169 """
     173        // Collect git information
     174        final scmVars = checkout scm
     175
     176        final settings = new BuildSettings(params, scmVars)
     177
     178        currentBuild.description = settings.DescShort
     179        echo                       settings.DescLong
     180
     181        return settings
    170182}
    171183
     
    285297                        //Also specify the compiler by hand
    286298                        targets=""
    287                         if( params.RunAllTests ) {
     299                        if( Settings.RunAllTests ) {
    288300                                targets="--with-target-hosts='host:debug,host:nodebug'"
    289301                        } else {
     
    291303                        }
    292304
    293                         sh "${srcdir}/configure CXX=${params.Compiler.cpp_cc} ${params.Architecture.flags} ${targets} --with-backend-compiler=${params.Compiler.cfa_cc} --quiet"
     305                        sh "${srcdir}/configure CXX=${Settings.Compiler.cpp_cc} ${Settings.Architecture.flags} ${targets} --with-backend-compiler=${Settings.Compiler.cfa_cc} --quiet"
    294306
    295307                        //Compile the project
     
    304316                dir (builddir) {
    305317                        //Run the tests from the tests directory
    306                         if ( params.RunAllTests ) {
     318                        if ( Settings.RunAllTests ) {
    307319                                sh 'make --no-print-directory -C tests all-tests debug=yes'
    308320                                sh 'make --no-print-directory -C tests all-tests debug=no '
     
    318330        build_stage('Benchmark') {
    319331
    320                 if( !params.RunBenchmark ) return
     332                if( !Settings.RunBenchmark ) return
    321333
    322334                dir (builddir) {
    323335                        //Append bench results
    324                         sh "make --no-print-directory -C benchmark jenkins githash=${gitRefNewValue} arch=${params.Architecture} | tee ${srcdir}/bench.json"
     336                        sh "make --no-print-directory -C benchmark jenkins githash=${gitRefNewValue} arch=${Settings.Architecture} | tee ${srcdir}/bench.json"
    325337                }
    326338        }
     
    330342        build_stage('Documentation') {
    331343
    332                 if( !params.BuildDocumentation ) return
     344                if( !Settings.BuildDocumentation ) return
    333345
    334346                dir ('doc/user') {
     
    345357        build_stage('Publish') {
    346358
    347                 if( !params.Publish ) return
     359                if( !Settings.Publish ) return
    348360
    349361                //Then publish the results
     
    386398
    387399        try {
    388                 gitUpdate = gitBranchUpdate(gitRefOldValue, gitRefNewValue)
    389 
    390                 sh "git rev-list --format=short ${gitRefOldValue}...${gitRefNewValue} > GIT_LOG"
     400                gitUpdate = gitBranchUpdate(Settings.PrevCommit, Settings.Commit)
     401
     402                sh "git rev-list --format=short ${Settings.PrevCommit}...${Settings.Commit} > GIT_LOG"
    391403                gitLog = readFile('GIT_LOG')
    392404
    393                 sh "git diff --stat ${gitRefNewValue} ${gitRefOldValue} > GIT_DIFF"
     405                sh "git diff --stat ${Settings.Commit} ${Settings.PrevCommit} > GIT_DIFF"
    394406                gitDiff = readFile('GIT_DIFF')
    395407        }
Note: See TracChangeset for help on using the changeset viewer.