This is an automated email from the ASF dual-hosted git repository.

eze pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/trafficserver-ci.git


The following commit(s) were added to refs/heads/main by this push:
     new 58c614b  Create github_polling.pipeline
58c614b is described below

commit 58c614b0430c73fa9fc36c9865a59c3651c33d1f
Author: Evan Zelkowitz <[email protected]>
AuthorDate: Wed Aug 23 10:34:49 2023 -0600

    Create github_polling.pipeline
---
 jenkins/github/github_polling.pipeline | 282 +++++++++++++++++++++++++++++++++
 1 file changed, 282 insertions(+)

diff --git a/jenkins/github/github_polling.pipeline 
b/jenkins/github/github_polling.pipeline
new file mode 100644
index 0000000..b82b6cf
--- /dev/null
+++ b/jenkins/github/github_polling.pipeline
@@ -0,0 +1,282 @@
+TOP_JOB_DESC = "Builds:\\n"
+
+String buildJob(String ghcontext, String jobName, String shard='') {
+               //setGitHubPullRequestStatus(context: ghcontext, message: 
'Building', state: 'PENDING')
+               
+       if (currentBuild.description == null) {
+               currentBuild.description = "Builds:<br>"
+       }
+       currentBuild.displayName = "PR: #${GITHUB_PR_NUMBER} - Build: 
#${BUILD_NUMBER}"
+       https_github_url = GITHUB_REPO_GIT_URL.replace("git://", "https://";)
+
+       def parms = [
+               string(name: 'SHA1', value: GITHUB_PR_HEAD_SHA),
+               string(name: 'GITHUB_URL', value: https_github_url),
+               string(name: 'GITHUB_PR_NUMBER', value: GITHUB_PR_NUMBER),
+               string(name: 'GITHUB_PR_TARGET_BRANCH', value: 
GITHUB_PR_TARGET_BRANCH),
+       ]
+
+       def displayname = jobName
+       if (shard != '') {
+               parms << string(name: 'AUTEST_SHARD', value: shard)
+               displayname += ' ' + shard
+       }
+
+       def jobBuild = build job: jobName, propagate: false, parameters: parms
+       def jobURL = jobBuild.getAbsoluteUrl()
+       currentBuild.description += " ${displayname} - <a 
href=${jobURL}>${jobURL}</a> <br>"
+
+       def jobResult = jobBuild.getResult()
+
+       echo "Build of '${displayname}' returned result: ${jobResult}"
+
+       if (jobResult == 'SUCCESS') {
+               //setGitHubPullRequestStatus(context: ghcontext, message: 
"Success - ${jobURL}", state: jobResult)
+       } else {
+               //setGitHubPullRequestStatus(context: ghcontext, message: 
"Failure - ${jobURL}", state: jobResult)
+       }
+       return jobResult
+}
+
+pipeline {
+       agent none
+       
+       stages {
+               stage('Quick Checks') {
+                       parallel {
+                               stage('Clang-Format') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*clang-format.*/ }
+                                               }
+                                       }
+                                       steps {
+                                               script {
+                                                       echo 
GITHUB_PR_COMMENT_BODY_MATCH
+                                                       result = 
buildJob('Clang-Format', 'Github_Builds/clang-format')
+                                                       if (result == 
'FAILURE') {
+                                                               
error('Clang-Format failed')
+                                                       }
+                                               }
+                                       }
+                               }
+                               stage('RAT') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*rat.*/ }
+                                               }
+                                       }
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('RAT', 'Github_Builds/rat')
+                                                       if (result == 
'FAILURE') {
+                                                               error('RAT 
failed')
+                                                       }
+                                               }
+                                       }
+                               }
+                               stage('Docs') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*docs.*/ }
+                                               }
+                                       }
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('Docs', 'Github_Builds/docs')
+                                                       if (result == 
'FAILURE') {
+                                                               error('Docs 
failed')
+                                                       }
+                                               }
+                                       }
+                               }                
+                       }
+               }
+
+               stage('Build and Test') {
+                       parallel {
+                               stage('Ubuntu Build') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*ubuntu.*/ }
+                                               }
+                                       }
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('Ubuntu', 'Github_Builds/ubuntu')
+                                                       if (result == 
'FAILURE') {
+                                                               error('Ubuntu 
build failed')
+                                                       }
+                                               }
+                                       }
+                               }
+                               stage('Fedora Build') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*fedora.*/ }
+                                               }
+                                       }                    
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('Fedora', 'Github_Builds/fedora')
+                                                       if (result == 
'FAILURE') {
+                                                               error('Fedora 
build failed')
+                                                       }
+                                               }
+                                       }
+                               }
+                               stage('Debian Build') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*debian.*/ }
+                                               }
+                                       }                    
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('Debian', 'Github_Builds/debian')
+                                                       if (result == 
'FAILURE') {
+                                                               error('Debian 
build failed')
+                                                       }
+                                                       result = 'SUCCESS'
+                                               }
+                                       }
+                               }
+
+                               stage('Rocky Build') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*rocky.*/ }
+                                               }
+                                       }                    
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('Rocky', 'Github_Builds/rocky')
+                                                       if (result == 
'FAILURE') {
+                                                               error('Rocky 
build failed')
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               stage('CentOS Build') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*centos.*/ }
+                                               }
+                                       }
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('CentOS', 'Github_Builds/centos')
+                                                       if (result == 
'FAILURE') {
+                                                               error('CentOS 
build failed')
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               stage('CMake Build') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*cmake.*/ }
+                                               }
+                                       }                    
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('CMake', 'Github_Builds/cmake')
+                                                       if (result == 
'FAILURE') {
+                                                               error('CMake 
build failed')
+                                                       }
+                                               }
+                                       }
+                               }
+                               
+                               stage('OSX Build') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*osx.*/ }
+                                               }
+                                       }                    
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('OSX', 'Github_Builds/osx')
+                                                       if (result == 
'FAILURE') {
+                                                               error('OSX 
build failed')
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               stage('FreeBSD Build') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*freebsd.*/ }
+                                               }
+                                       }                    
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('FreeBSD', 'Github_Builds/freebsd')
+                                                       if (result == 
'FAILURE') {
+                                                               error('FreeBSD 
build failed')
+                                                       }
+                                               }
+                                       }
+                               }
+
+                               stage('Clang-Analyzer') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*clang-analyzer.*/ }
+                                               }
+                                       }                    
+                                       steps {
+                                               script {
+                                                       result = 
buildJob('Clang-Analyzer', 'Github_Builds/clang-analyzer')
+                                                       if (result == 
'FAILURE') {
+                                                               
error('Clang-Analyzer failed')
+                                                       }
+                                               }
+                                       }
+                               }
+                               stage('AuTest') {
+                                       when {
+                                               anyOf {
+                                                       environment name: 
'GITHUB_PR_COMMENT_BODY_MATCH', value: ''
+                                                       expression { 
GITHUB_PR_COMMENT_BODY_MATCH ==~ /.*autest.*/ }
+                                               }
+                                       }
+                                       steps {
+                                               script {
+                                                       String jobpath = 
'Github_Builds/autest'
+                                                       if (env.AUTEST_SHARDS) {
+                                                               def nshards = 
env.AUTEST_SHARDS as int
+                                                               def jobs = [:]
+                                                               for (index = 0 
; index < nshards ; index++) {
+                                                                       String 
shard = index + "of" + env.AUTEST_SHARDS
+                                                                       
jobs[shard] = { buildJob('AuTest ' + shard, jobpath, shard) }
+                                                               }
+                                                               parallel jobs
+                                                       } else {
+                                                               result = 
buildJob('AuTest', jobpath)
+                                                               if (result == 
'FAILURE') {
+                                                                       
error('AuTest failed')
+                                                               }
+                                                       }
+                                               }
+                                       }
+                               }
+                       } // parallel for "Build and Test"
+               } // End Stage("Build and Test")
+       } // End Stages
+}

Reply via email to