Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Jenkins/FullBuild

    r38c0fe5 r0c1d240  
    2525                                )
    2626                        }
     27
     28                        //Push latest changes to do-lang repo
     29                        push_build()
    2730                }
    28 
    29                 promote_email(true)
    3031        }
    3132
     
    4243
    4344                //Send email to notify the failure
    44                 promote_email(false)
     45                promote_failure_email()
    4546        }
    4647
     
    9192}
    9293
     94def push_build() {
     95        //Don't use the build_stage function which outputs the compiler
     96        stage('Push') {
     97
     98                status_prefix = 'Push'
     99
     100                def out_dir = pwd tmp: true
     101                sh "mkdir -p ${out_dir}"
     102
     103                //checkout the code to make sure this is a valid git repo
     104                checkout scm
     105
     106                collect_git_info()
     107
     108                //parse git logs to find what changed
     109                sh "git remote > ${out_dir}/GIT_REMOTE"
     110                git_remote = readFile("${out_dir}/GIT_REMOTE")
     111                remoteDoLangExists = git_remote.contains("DoLang")
     112
     113                if( !remoteDoLangExists ) {
     114                        sh 'git remote add DoLang git@gitlab.do-lang.org:internal/cfa-cc.git'
     115                }
     116
     117                //sh "GIT_SSH_COMMAND=\"ssh -v\" git push DoLang ${gitRefNewValue}:master"
     118                echo('BUILD NOT PUSH SINCE DO-LANG SERVER WAS DOWN')
     119        }
     120}
     121
    93122//Helper routine to collect information about the git history
    94123def collect_git_info() {
     
    112141
    113142//Email notification on a full build failure
    114 def promote_email(boolean success) {
     143def promote_failure_email() {
    115144        echo('notifying users')
    116 
    117         def result = success ? "PROMOTE - SUCCESS" : "PROMOTE - FAILURE"
    118145
    119146        //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line
    120147        //Configurations for email format
    121         def email_subject = "[cforall git][${result}]"
    122         def email_body = """<p>This is an automated email from the Jenkins build machine. It was
    123 generated following the result of the C∀ nightly build.</p>
     148        def email_subject = "[cforall git][PROMOTE - FAILURE]"
     149        def email_body = """This is an automated email from the Jenkins build machine. It was
     150generated because of a git hooks/post-receive script following
     151a ref change was pushed to the repository containing
     152the project "UNNAMED PROJECT".
    124153
    125 <p>Check console output at ${env.BUILD_URL} to view the results.</p>
     154Check console output at ${env.BUILD_URL} to view the results.
    126155
    127 <p>- Status --------------------------------------------------------------</p>
     156- Status --------------------------------------------------------------
    128157
    129 <p>${result}</p>
    130 
    131 <p>- Performance --------------------------------------------------------------</p>
    132 
    133 <img src="https://cforall.uwaterloo.ca/jenkins/job/Cforall/job/master/plot/Compilation/getPlot?index=0" >
     158PROMOTE FAILURE
    134159"""
    135160
     
    137162
    138163        //send email notification
    139         emailext body: email_body, subject: email_subject, to: email_to, attachLog: !success
     164        emailext body: email_body, subject: email_subject, to: email_to, attachLog: true
    140165}
Note: See TracChangeset for help on using the changeset viewer.