Add CI job definitions using our new templated pipelines to llvm-project, this way we can enable multi branch pipelines which trigger for changes on a given branch. By storing the Jenkinfile definitions in llvm-project, we gain the benefit of enabling Jenkins multi branch pipelines. This means in the future, expanding a job configuration to build with a new branch is as simple as updating a regular expression in Jenkins (the regular expression represents which branches should be built). The work required for enabling testing new branches becomes minimal, and furthermore we would have a great deal of confidence that job configurations across branches remain identical. I will verify these new jenkinsfiles work before deprecating the old definitions in zorg
34 lines
948 B
Groovy
34 lines
948 B
Groovy
branchName = 'main'
|
|
|
|
library identifier: "zorg-shared-lib@${branchName}",
|
|
retriever: modernSCM([
|
|
$class: 'GitSCMSource',
|
|
remote: "https://github.com/llvm/llvm-zorg.git",
|
|
credentialsId: scm.userRemoteConfigs[0].credentialsId
|
|
])
|
|
|
|
clangPipeline(
|
|
jobName: env.JOB_NAME,
|
|
zorgBranch: branchName,
|
|
stages: ['checkout', 'fetch', 'build'],
|
|
buildConfig: [
|
|
stage: 2,
|
|
stage1Job: 'clang-stage1-RA',
|
|
build_type: 'cmake',
|
|
cmake_type: 'RelWithDebInfo',
|
|
projects: 'clang;clang-tools-extra',
|
|
runtimes: 'libcxx;libcxxabi;compiler-rt',
|
|
cmake_build_target: 'LTO',
|
|
noinstall: true,
|
|
thinlto: true,
|
|
sanitizer: 'Thread',
|
|
incremental: false,
|
|
cmake_flags: [
|
|
"-DLLVM_BUILD_RUNTIME=OFF"
|
|
],
|
|
env_vars: [
|
|
"DYLD_LIBRARY_PATH": "\$WORKSPACE/host-compiler/lib/"
|
|
]
|
|
]
|
|
)
|