Changeset 905cf4b for Jenkinsfile


Ignore:
Timestamp:
Jun 8, 2016, 2:23:13 PM (8 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, ctor, deferred_resn, demangler, enum, forall-pointer-decay, gc_noraii, jacob/cs343-translation, jenkins-sandbox, master, memory, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
Children:
58b5d03, 5c6768e
Parents:
89ce869 (diff), a235d09 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg2:software/cfa/cfa-cc

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Jenkinsfile

    r89ce869 r905cf4b  
    3535}
    3636
     37def push_build() {
     38        build_stage 'Push'
     39
     40                sh 'git remote add DoLang git@gitlab.do-lang.org:internal/cfa-cc.git'
     41                sh 'git push DoLang master'
     42}
     43
    3744//===========================================================================================================
    3845// Helper classes/variables/routines to make the status and stage name easier to use
     
    96103                                collect_git_info()
    97104
     105                                properties ([                                                                   \
     106                                        [$class: 'ParametersDefinitionProperty',                                \
     107                                                parameterDefinitions: [                                         \
     108                                                [$class: 'BooleanParameterDefinition',                          \
     109                                                  defaultValue: false,                                          \
     110                                                  description: 'If true, the build will be promoted to the do-lang git repository (on successful builds only)', \
     111                                                  name: 'promoteBuild2DoLang'                           \
     112                                                ]]                                                                      \
     113                                        ]])
     114
     115                                echo "FULL BUILD = ${promoteBuild2DoLang}"
     116
    98117                                //Compile using gcc-4.9
    99118                                currentCC = new CC_Desc('gcc-4.9', 'g++-4.9', 'gcc-4.9')
     
    108127                                cfa_build()
    109128
     129                                if(promote_build) {
     130                                        push_build()
     131                                }
    110132                        }
    111133                }
     
    127149        finally {
    128150                //Send email with final results
    129                 email(currentBuild.result, log_needed)
     151                notify_result(promote_build, err != null, currentBuild.result, log_needed)
    130152
    131153                /* Must re-throw exception to propagate error */
     
    139161//Routine responsible of sending the email notification once the build is completed
    140162//===========================================================================================================
     163def promote_email(boolean promote, boolean success, String status, boolean log) {
     164        if(promote)     {
     165                if( !success ) {
     166                        promote_email(status)
     167                }
     168        }
     169        else {
     170                email(status, log)
     171        }
     172}
     173
     174//Email notification on a full build failure
     175def promote_email(String status) {
     176        //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line
     177        //Configurations for email format
     178        def email_subject = "[cforall git][PROMOTE - FAILURE]"
     179        def email_body = """This is an automated email from the Jenkins build machine. It was
     180generated because of a git hooks/post-receive script following
     181a ref change was pushed to the repository containing
     182the project "UNNAMED PROJECT".
     183
     184Check console output at ${env.BUILD_URL} to view the results.
     185
     186- Status --------------------------------------------------------------
     187
     188PROMOTE FAILURE - ${status}
     189"""
     190
     191        def email_to = "pabuhr@uwaterloo.ca, rschlunt@uwaterloo.ca, a3moss@uwaterloo.ca, tdelisle@uwaterloo.ca, brice.dobry@huawei.com"
     192
     193        //send email notification
     194        emailext body: email_body, subject: email_subject, to: email_to, attachLog: true
     195}
     196
     197//Standard build email notification
    141198def email(String status, boolean log) {
    142199        //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line
     
    157214
    158215The branch ${env.BRANCH_NAME} has been updated.
    159         via  ${gitRefOldValue} (commit)
    160         from  ${gitRefNewValue} (commit)
     216  via  ${gitRefOldValue} (commit)
     217  from  ${gitRefNewValue} (commit)
    161218
    162219Check console output at ${env.BUILD_URL} to view the results.
Note: See TracChangeset for help on using the changeset viewer.