blob: 7fcd832441efe0f1729b99469f982015d1dfe1b4 [file] [log] [blame]
#!/usr/bin/env groovy
pipeline {
options {
disableConcurrentBuilds()
}
parameters {
string(name: 'LABEL', defaultValue: params.LABEL ?: 'macos-x86_64', description: 'Node label to run on')
string(name: 'GIT_SHA', defaultValue: params.GIT_REVISION ?: '*/main', description: 'Git commit to build.')
string(name: 'BUILD_TYPE', defaultValue: params.BUILD_TYPE ?: 'Release', description: 'Default CMake build type; one of: Release, Debug, ...')
booleanParam(name: 'CLEAN', defaultValue: params.CLEAN ?: false, description: 'Wipe the build directory?')
}
agent {
node {
label params.LABEL
}
}
environment {
MATRIX_COMMON_BUILD_PARAMETERS = '--cmake-flag=-DLLVM_TARGETS_TO_BUILD=X86'
PATH="$PATH:/usr/bin:/usr/local/bin"
}
stages {
stage('Checkout') {
steps {
timeout(30) {
dir('llvm-project') {
checkout([$class: 'GitSCM', branches: [
[name: params.GIT_SHA]
], userRemoteConfigs: [
[url: 'https://github.com/llvm/llvm-project.git']
], extensions: [
[$class: 'CloneOption',
noTags: true, timeout: 30]
]])
}
dir('llvm-zorg') {
checkout([$class: 'GitSCM', branches: [
[name: '*/main']
], userRemoteConfigs: [
[url: 'https://github.com/llvm/llvm-zorg.git']
], extensions: [
[$class: 'CloneOption',
reference: '/Users/Shared/llvm-zorg.git']
]])
}
}
}
}
stage('Setup Venv') {
steps {
sh '''
# Non-incremental, so always delete.
rm -rf venv
python3 -m venv venv
set +u
source ./venv/bin/activate
pip install -r ./llvm-zorg/zorg/jenkins/jobs/requirements.txt
set -u
'''
}
}
stage('Build LLDB') {
steps {
timeout(90) {
sh '''
set -u
rm -rf build.properties
source ./venv/bin/activate
cd llvm-project
git tag -a -m "First Commit" first_commit 97724f18c79c7cc81ced24239eb5e883bf1398ef || true
git_desc=$(git describe --match "first_commit")
export GIT_DISTANCE=$(echo ${git_desc} | cut -f 2 -d "-")
sha=$(echo ${git_desc} | cut -f 3 -d "-")
export GIT_SHA=${sha:1}
cd -
rm -rf lldb-build/bin/debugserver
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake build \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--skip-category gmodules" \
--dotest-flag="--arch=x86_64"
'''
script {
def LLDB = new org.swift.LLDB()
LLDB.LLDB_prepare()
}
}
}
}
stage('Test DWARF2') {
steps {
timeout(60) {
sh '''
source ./venv/bin/activate
export PATH=$PATH:/usr/bin:/usr/local/bin
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix configure \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--lldb-test-compiler="$WORKSPACE/lldb-build/bin/clang" \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--skip-category" \
--dotest-flag="gmodules" \
--dotest-flag="--skip-category" \
--dotest-flag="watchpoint" \
--dotest-flag="--skip-category" \
--dotest-flag="llgs" \
--dotest-flag="--skip-category" \
--dotest-flag="debugserver" \
--dotest-flag="--arch=x86_64" \
--dotest-flag="--dwarf-version=2"
# Give the system some time to recover.
sleep 120
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix test || echo "** check-lldb failed with errors"
'''
}
junit 'test/results.xml'
}
}
stage('Test DWARF4') {
steps {
timeout(60) {
sh '''
source ./venv/bin/activate
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix configure \
$MATRIX_COMMON_BUILD_PARAMETERS \
--lldb-test-compiler="$WORKSPACE/lldb-build/bin/clang" \
--assertions \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--skip-category" \
--dotest-flag="gmodules" \
--dotest-flag="--skip-category" \
--dotest-flag="watchpoint" \
--dotest-flag="--skip-category" \
--dotest-flag="llgs" \
--dotest-flag="--skip-category" \
--dotest-flag="debugserver" \
--dotest-flag="--arch=x86_64" \
--dotest-flag="--dwarf-version=4"
# Give the system some time to recover.
sleep 120
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix test || echo "** check-lldb failed with errors"
'''
}
junit 'test/results.xml'
}
}
stage('Test DWARF5') {
steps {
timeout(60) {
sh '''
source ./venv/bin/activate
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix configure \
$MATRIX_COMMON_BUILD_PARAMETERS \
--lldb-test-compiler="$WORKSPACE/lldb-build/bin/clang" \
--assertions \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--skip-category" \
--dotest-flag="gmodules" \
--dotest-flag="--skip-category" \
--dotest-flag="watchpoint" \
--dotest-flag="--skip-category" \
--dotest-flag="llgs" \
--dotest-flag="--skip-category" \
--dotest-flag="debugserver" \
--dotest-flag="--arch=x86_64" \
--dotest-flag="--dwarf-version=5"
# Give the system some time to recover.
sleep 120
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix test || echo "** check-lldb failed with errors"
'''
}
junit 'test/results.xml'
}
}
stage('Build Clang 17.0.6') {
steps {
timeout(30) {
dir('clang_1706') {
checkout([$class: 'GitSCM', branches: [
[name: "llvmorg-17.0.6"]
], userRemoteConfigs: [
[url: 'https://github.com/llvm/llvm-project.git']
], extensions: [
[$class: 'CloneOption', timeout: 30,
timeout: 30]
]])
}
}
timeout(90) {
sh '''
export PATH=$PATH:/usr/bin:/usr/local/bin
export SRC_DIR='clang_1706'
export BUILD_DIR='clang_1706_build'
python3 llvm-zorg/zorg/jenkins/monorepo_build.py cmake build \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--noupload \
--noinstall \
--projects="clang" \
--runtimes="libcxx;libcxxabi;libunwind"
'''
}
}
}
stage('Test Clang 17.0.6') {
steps {
timeout(60) {
sh '''
source ./venv/bin/activate
build_dir=$WORKSPACE/clang_1706_build
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix configure \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--lldb-test-compiler="$build_dir/bin/clang" \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--libcxx-include-dir=$build_dir/include/c++/v1/" \
--dotest-flag="--libcxx-library-dir=$build_dir/lib/" \
--dotest-flag="--skip-category" \
--dotest-flag="gmodules" \
--dotest-flag="--skip-category" \
--dotest-flag="watchpoint" \
--dotest-flag="--skip-category" \
--dotest-flag="llgs" \
--dotest-flag="--skip-category" \
--dotest-flag="debugserver" \
--dotest-flag="--arch=x86_64"
# Give the system some time to recover.
sleep 120
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix test || echo "** check-lldb failed with errors"
'''
}
junit 'test/results.xml'
}
}
stage('Build Clang 15.0.1') {
steps {
timeout(30) {
dir('clang_1501') {
checkout([$class: 'GitSCM', branches: [
[name: "llvmorg-15.0.1"]
], userRemoteConfigs: [
[url: 'https://github.com/llvm/llvm-project.git']
], extensions: [
[$class: 'CloneOption', timeout: 30,
timeout: 30]
]])
}
}
timeout(90) {
sh '''
source ./venv/bin/activate
export SRC_DIR='clang_1501'
export BUILD_DIR='clang_1501_build'
python3 llvm-zorg/zorg/jenkins/monorepo_build.py cmake build \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--noupload \
--noinstall \
--projects="clang;libcxx;libcxxabi"
'''
}
}
}
stage('Test Clang 15.0.1') {
steps {
timeout(60) {
sh '''
source ./venv/bin/activate
build_dir=$WORKSPACE/clang_1501_build
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix configure \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--lldb-test-compiler="$build_dir/bin/clang" \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--libcxx-include-dir=$build_dir/include/c++/v1/" \
--dotest-flag="--libcxx-library-dir=$build_dir/lib/" \
--dotest-flag="--skip-category" \
--dotest-flag="gmodules" \
--dotest-flag="--skip-category" \
--dotest-flag="watchpoint" \
--dotest-flag="--skip-category" \
--dotest-flag="llgs" \
--dotest-flag="--skip-category" \
--dotest-flag="debugserver" \
--dotest-flag="--arch=x86_64"
# Give the system some time to recover.
sleep 120
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix test || echo "** check-lldb failed with errors"
'''
}
junit 'test/results.xml'
}
}
stage('Build Clang 13.0.0') {
steps {
timeout(30) {
dir('clang_1300') {
checkout([$class: 'GitSCM', branches: [
[name: "llvmorg-13.0.0"]
], userRemoteConfigs: [
[url: 'https://github.com/llvm/llvm-project.git']
], extensions: [
[$class: 'CloneOption', timeout: 30,
timeout: 30]
]])
}
}
timeout(90) {
sh '''
source ./venv/bin/activate
export SRC_DIR='clang_1300'
export BUILD_DIR='clang_1300_build'
python3 llvm-zorg/zorg/jenkins/monorepo_build.py cmake build \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--noupload \
--noinstall \
--projects="clang;libcxx;libcxxabi"
'''
}
}
}
stage('Test Clang 13.0.0') {
steps {
timeout(60) {
sh '''
source ./venv/bin/activate
build_dir=$WORKSPACE/clang_1300_build
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix configure \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--lldb-test-compiler="$build_dir/bin/clang" \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--libcxx-include-dir=$build_dir/include/c++/v1/" \
--dotest-flag="--libcxx-library-dir=$build_dir/lib/" \
--dotest-flag="--skip-category" \
--dotest-flag="gmodules" \
--dotest-flag="--skip-category" \
--dotest-flag="watchpoint" \
--dotest-flag="--skip-category" \
--dotest-flag="llgs" \
--dotest-flag="--skip-category" \
--dotest-flag="debugserver" \
--dotest-flag="--arch=x86_64"
# Give the system some time to recover.
sleep 120
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix test || echo "** check-lldb failed with errors"
'''
}
junit 'test/results.xml'
}
}
stage('Build Clang 11.0.1') {
steps {
timeout(30) {
dir('clang_1101') {
checkout([$class: 'GitSCM', branches: [
[name: "llvmorg-11.0.1"]
], userRemoteConfigs: [
[url: 'https://github.com/llvm/llvm-project.git']
], extensions: [
[$class: 'CloneOption', timeout: 30,
timeout: 30]
]])
}
}
timeout(90) {
sh '''
source ./venv/bin/activate
export SRC_DIR='clang_1101'
export BUILD_DIR='clang_1101_build'
python3 llvm-zorg/zorg/jenkins/monorepo_build.py cmake build \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--noupload \
--noinstall \
--projects="clang;libcxx;libcxxabi"
'''
}
}
}
stage('Test Clang 11.0.1') {
steps {
timeout(60) {
sh '''
source ./venv/bin/activate
build_dir=$WORKSPACE/clang_1101_build
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix configure \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--lldb-test-compiler="$build_dir/bin/clang" \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--libcxx-include-dir=$build_dir/include/c++/v1/" \
--dotest-flag="--libcxx-library-dir=$build_dir/lib/" \
--dotest-flag="--skip-category" \
--dotest-flag="gmodules" \
--dotest-flag="--skip-category" \
--dotest-flag="watchpoint" \
--dotest-flag="--skip-category" \
--dotest-flag="llgs" \
--dotest-flag="--skip-category" \
--dotest-flag="debugserver" \
--dotest-flag="--arch=x86_64"
# Give the system some time to recover.
sleep 120
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix test || echo "** check-lldb failed with errors"
'''
}
junit 'test/results.xml'
}
}
stage('Build Clang 9.0.0') {
steps {
timeout(30) {
dir('clang_900') {
checkout([$class: 'GitSCM', branches: [
[name: "llvmorg-9.0.0"]
], userRemoteConfigs: [
[url: 'https://github.com/llvm/llvm-project.git']
], extensions: [
[$class: 'CloneOption', timeout: 30,
timeout: 30]
]])
}
}
timeout(90) {
sh '''
source ./venv/bin/activate
export SRC_DIR='clang_900'
export BUILD_DIR='clang_900_build'
python3 llvm-zorg/zorg/jenkins/monorepo_build.py cmake build \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--noupload \
--noinstall \
--projects="clang;libcxx;libcxxabi"
'''
}
}
}
stage('Test Clang 9.0.0') {
steps {
timeout(60) {
sh '''
source ./venv/bin/activate
build_dir=$WORKSPACE/clang_900_build
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix configure \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--lldb-test-compiler="$build_dir/bin/clang" \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--libcxx-include-dir=$build_dir/include/c++/v1/" \
--dotest-flag="--libcxx-library-dir=$build_dir/lib/" \
--dotest-flag="--skip-category" \
--dotest-flag="gmodules" \
--dotest-flag="--skip-category" \
--dotest-flag="watchpoint" \
--dotest-flag="--skip-category" \
--dotest-flag="llgs" \
--dotest-flag="--skip-category" \
--dotest-flag="debugserver" \
--dotest-flag="--arch=x86_64"
# Give the system some time to recover.
sleep 120
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix test || echo "** check-lldb failed with errors"
'''
}
junit 'test/results.xml'
}
}
stage('Build Clang 7.0.1') {
steps {
timeout(30) {
dir('clang_701') {
checkout([$class: 'GitSCM', branches: [
[name: "llvmorg-7.0.1"]
], userRemoteConfigs: [
[url: 'https://github.com/llvm/llvm-project.git']
], extensions: [
[$class: 'CloneOption', timeout: 30,
timeout: 30]
]])
}
}
timeout(90) {
sh '''
source ./venv/bin/activate
export SRC_DIR='clang_701'
export BUILD_DIR='clang_701_build'
source ./venv/bin/activate
python3 llvm-zorg/zorg/jenkins/monorepo_build.py cmake build \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--noupload \
--noinstall \
--projects="clang;libcxx;libcxxabi"
'''
}
}
}
stage('Test Clang 7.0.1') {
steps {
timeout(60) {
sh '''
source ./venv/bin/activate
build_dir=$WORKSPACE/clang_701_build
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix configure \
$MATRIX_COMMON_BUILD_PARAMETERS \
--assertions \
--lldb-test-compiler="$build_dir/bin/clang" \
--projects="clang;lldb" \
--runtimes="libcxx;libcxxabi;libunwind" \
--cmake-type=Release \
--dotest-flag="--libcxx-include-dir=$build_dir/include/c++/v1/" \
--dotest-flag="--libcxx-library-dir=$build_dir/lib/" \
--dotest-flag="--skip-category" \
--dotest-flag="gmodules" \
--dotest-flag="--skip-category" \
--dotest-flag="watchpoint" \
--dotest-flag="--skip-category" \
--dotest-flag="llgs" \
--dotest-flag="--skip-category" \
--dotest-flag="debugserver" \
--dotest-flag="--arch=x86_64"
# Give the system some time to recover.
sleep 120
python3 llvm-zorg/zorg/jenkins/monorepo_build.py lldb-cmake-matrix test || echo "** check-lldb failed with errors"
'''
}
junit 'test/results.xml'
}
}
}
}