Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Jenkins/FullBuild

    ra74554af re39647e  
    1717
    1818                                parallel (
    19                                         gcc_6_x64: { trigger_build( 'gcc-6',   'x64' ) },
    20                                         gcc_6_x86: { trigger_build( 'gcc-6',   'x86' ) },
    21                                         gcc_5_x64: { trigger_build( 'gcc-5',   'x64' ) },
    22                                         gcc_5_x86: { trigger_build( 'gcc-5',   'x86' ) },
    23                                         clang_x64: { trigger_build( 'clang',   'x64' ) },
    24                                         clang_x86: { trigger_build( 'clang',   'x86' ) },
     19                                        gcc_6_x64: { trigger_build( 'gcc-6',   'x64', true  ) },
     20                                        gcc_6_x86: { trigger_build( 'gcc-6',   'x86', true  ) },
     21                                        gcc_5_x64: { trigger_build( 'gcc-5',   'x64', false ) },
     22                                        gcc_5_x86: { trigger_build( 'gcc-5',   'x86', false ) },
     23                                        gcc_4_x64: { trigger_build( 'gcc-4.9', 'x64', false ) },
     24                                        gcc_4_x86: { trigger_build( 'gcc-4.9', 'x86', false ) },
     25                                        clang_x64: { trigger_build( 'clang',   'x64', false ) },
     26                                        clang_x86: { trigger_build( 'clang',   'x86', false ) },
    2527                                )
    2628                        }
     29
     30                        //Push latest changes to do-lang repo
     31                        push_build()
    2732                }
    28 
    29                 promote_email(true)
    3033        }
    3134
     
    4245
    4346                //Send email to notify the failure
    44                 promote_email(false)
     47                promote_failure_email()
    4548        }
    4649
     
    5659//===========================================================================================================
    5760
    58 def trigger_build(String cc, String arch) {
     61def trigger_build(String cc, String arch, Boolean publish) {
    5962        def result = build job: 'Cforall/master',               \
    6063                parameters: [                                           \
    6164                        [$class: 'StringParameterValue',                \
    62                           name: 'Compiler',                             \
     65                          name: 'pCompiler',                            \
    6366                          value: cc],                                   \
    6467                        [$class: 'StringParameterValue',                \
    65                           name: 'Architecture',                         \
     68                          name: 'pArchitecture',                        \
    6669                          value: arch],                                 \
    6770                        [$class: 'BooleanParameterValue',               \
    68                           name: 'RunAllTests',                          \
     71                          name: 'pRunAllTests',                         \
    6972                          value: true],                                         \
    7073                        [$class: 'BooleanParameterValue',               \
    71                           name: 'RunBenchmark',                         \
     74                          name: 'pRunBenchmark',                        \
    7275                          value: true],                                         \
    7376                        [$class: 'BooleanParameterValue',               \
    74                           name: 'BuildDocumentation',           \
     77                          name: 'pBuildDocumentation',          \
    7578                          value: true],                                         \
    7679                        [$class: 'BooleanParameterValue',               \
    77                           name: 'Publish',                              \
    78                           value: true],                                 \
     80                          name: 'pPublish',                             \
     81                          value: publish],                                      \
    7982                        [$class: 'BooleanParameterValue',               \
    80                           name: 'Silent',                               \
     83                          name: 'pSilent',                              \
    8184                          value: true],                                         \
    8285                ],                                                              \
     
    8689
    8790        if(result.result != 'SUCCESS') {
    88                 sh("wget -q -O - http://localhost:8084/jenkins/job/Cforall/job/master/${result.number}/consoleText")
     91                sh("wget -q -O - ${result.absoluteUrl}/consoleText")
    8992                error(result.result)
     93        }
     94}
     95
     96def push_build() {
     97        //Don't use the build_stage function which outputs the compiler
     98        stage('Push') {
     99
     100                status_prefix = 'Push'
     101
     102                def out_dir = pwd tmp: true
     103                sh "mkdir -p ${out_dir}"
     104
     105                //checkout the code to make sure this is a valid git repo
     106                checkout scm
     107
     108                collect_git_info()
     109
     110                //parse git logs to find what changed
     111                sh "git remote > ${out_dir}/GIT_REMOTE"
     112                git_remote = readFile("${out_dir}/GIT_REMOTE")
     113                remoteDoLangExists = git_remote.contains("DoLang")
     114
     115                if( !remoteDoLangExists ) {
     116                        sh 'git remote add DoLang git@gitlab.do-lang.org:internal/cfa-cc.git'
     117                }
     118
     119                //sh "GIT_SSH_COMMAND=\"ssh -v\" git push DoLang ${gitRefNewValue}:master"
     120                echo('BUILD NOT PUSH SINCE DO-LANG SERVER WAS DOWN')
    90121        }
    91122}
     
    112143
    113144//Email notification on a full build failure
    114 def promote_email(boolean success) {
     145def promote_failure_email() {
    115146        echo('notifying users')
    116 
    117         def result = success ? "PROMOTE - SUCCESS" : "PROMOTE - FAILURE"
    118147
    119148        //Since tokenizer doesn't work, figure stuff out from the environnement variables and command line
    120149        //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\u2200 nightly build.</p>
     150        def email_subject = "[cforall git][PROMOTE - FAILURE]"
     151        def email_body = """This is an automated email from the Jenkins build machine. It was
     152generated because of a git hooks/post-receive script following
     153a ref change was pushed to the repository containing
     154the project "UNNAMED PROJECT".
    124155
    125 <p>Check console output at ${env.BUILD_URL} to view the results.</p>
     156Check console output at ${env.BUILD_URL} to view the results.
    126157
    127 <p>- Status --------------------------------------------------------------</p>
     158- Status --------------------------------------------------------------
    128159
    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" >
    134 <img src="https://cforall.uwaterloo.ca/jenkins/job/Cforall/job/master/plot/Compilation/getPlot?index=1" >
    135 
    136 <p>- Logs ----------------------------------------------------------------</p>
     160PROMOTE FAILURE
    137161"""
    138162
     
    140164
    141165        //send email notification
    142         emailext body: email_body, subject: email_subject, to: email_to, attachLog: !success
     166        emailext body: email_body, subject: email_subject, to: email_to, attachLog: true
    143167}
Note: See TracChangeset for help on using the changeset viewer.