Commit 12f2e249 authored by Dominik Charousset's avatar Dominik Charousset

Bring back Linux builds via Jenkins

parent 2b5ac8c1
FROM ubuntu:18.04
RUN apt update -y \
&& apt upgrade -y \
&& apt install -y \
cmake \
g++-8 \
git \
libssl-dev \
make \
&& apt-get autoclean
ENV CXX=/usr/bin/g++-8
......@@ -4,53 +4,18 @@ resources_template: &RESOURCES_TEMPLATE
cpu: 4
memory: 16GB
# Run only when pushing to master and in PRs.
# Run only when pushing to master or in PRs.
branch_filter: &BRANCH_FILTER
only_if: >
$CIRRUS_PR != '' ||
$CIRRUS_BRANCH == 'master'
debug_build_template: &DEBUG_BUILD_TEMPLATE
build_script: .ci/run.sh build .ci/debug-flags.cmake . build
test_script: .ci/run.sh test build
<< : *BRANCH_FILTER
asan_build_template: &ASAN_BUILD_TEMPLATE
build_script: .ci/run.sh build .ci/asan-flags.cmake . build
# The OpenSSL tests currently report memory leaks, see GH issue #1396.
test_script: .ci/run.sh test build openssl
<< : *BRANCH_FILTER
# CentOS 7 EOL: June 2024
centos7_task:
container:
dockerfile: .ci/centos-7/Dockerfile
<< : *RESOURCES_TEMPLATE
<< : *DEBUG_BUILD_TEMPLATE
# Debian 11 EOL: June 2026
debian11_task:
container:
dockerfile: .ci/debian-11/Dockerfile
<< : *RESOURCES_TEMPLATE
<< : *DEBUG_BUILD_TEMPLATE
# Ubuntu 20.04 EOL: April 2025
ubuntu20_task:
container:
dockerfile: .ci/ubuntu-20.04/Dockerfile
<< : *RESOURCES_TEMPLATE
<< : *DEBUG_BUILD_TEMPLATE
# FreeBSD 12.4 EOL: December 2023
freebsd12_task:
freebsd_instance:
image_family: freebsd-12-4
<< : *RESOURCES_TEMPLATE
prepare_script: .ci/freebsd-12/prepare.sh
# Test net.udp_datagram_socket is unstable on FreeBSD, see GH issue #1397.
# << : *DEBUG_BUILD_TEMPLATE
build_script: .ci/run.sh build .ci/debug-flags.cmake . build
test_script: .ci/run.sh test build net.udp_datagram_socket
......@@ -60,20 +25,10 @@ freebsd13_task:
image_family: freebsd-13-2
<< : *RESOURCES_TEMPLATE
prepare_script: .ci/freebsd-13/prepare.sh
# Test net.udp_datagram_socket is unstable on FreeBSD, see GH issue #1397.
# << : *DEBUG_BUILD_TEMPLATE
build_script: .ci/run.sh build .ci/debug-flags.cmake . build
test_script: .ci/run.sh test build net.udp_datagram_socket
<< : *BRANCH_FILTER
# Fedora 38 EOL: May 2024
sanitizers_task:
container:
dockerfile: .ci/fedora-38/Dockerfile
<< : *RESOURCES_TEMPLATE
prepare_script: .ci/run.sh assert UBSanitizer
<< : *ASAN_BUILD_TEMPLATE
# Windows Server 2019 EOL: January 2024
windows_task:
timeout_in: 120m
......
#!/usr/bin/env groovy
@Library('caf-continuous-integration') _
// Configures the behavior of our stages.
config = [
// Version dependency for the caf-continuous-integration library.
ciLibVersion: 1.0,
// GitHub path to repository.
repository: 'actor-framework/actor-framework',
// List of enabled checks for email notifications.
checks: [
'build',
'tests',
],
// Default CMake flags by build type.
buildFlags: [
'CAF_ENABLE_ACTOR_PROFILER:BOOL=ON',
'CAF_ENABLE_EXAMPLES:BOOL=ON',
'CAF_ENABLE_RUNTIME_CHECKS:BOOL=ON',
],
extraDebugFlags: [
'CAF_LOG_LEVEL:STRING=TRACE',
],
// Our build matrix. Keys are the operating system labels and values are build configurations.
buildMatrix: [
// Various Linux builds.
['almalinux-8', [ // EOL: June 2029
numCores: 4,
tags: ['docker'],
builds: ['release'],
]],
['centos-7', [ // EOL July 2024
numCores: 4,
tags: ['docker'],
builds: ['release'],
]],
['debian-10', [ // EOL June 2024
numCores: 4,
tags: ['docker'],
builds: ['release'],
]],
['debian-11', [ // EOL June 2026
numCores: 4,
tags: ['docker'],
builds: ['release'],
]],
['fedora-37', [ // EOL December 2023
numCores: 4,
tags: ['docker'],
builds: ['release'],
]],
['fedora-38', [ // EOL June 2024
numCores: 4,
tags: ['docker'],
builds: ['release'],
]],
['ubuntu-20.04', [ // April 2025
numCores: 4,
tags: ['docker'],
builds: ['release'],
]],
['ubuntu-22.04', [ // April 2027
numCores: 4,
tags: ['docker'],
builds: ['release'],
]],
// Extra debug build with exceptions disabled.
['fedora-38', [
numCores: 4,
tags: ['docker'],
builds: ['debug'],
extraBuildFlags: [
'CAF_ENABLE_EXCEPTIONS:BOOL=OFF',
'CMAKE_CXX_FLAGS:STRING=-fno-exceptions',
],
]],
// Extra debug build for leak checking.
['fedora-38', [
numCores: 4,
tags: ['docker', 'LeakSanitizer'],
builds: ['debug'],
extraBuildFlags: [
'CAF_SANITIZERS:STRING=address',
],
extraBuildEnv: [
'ASAN_OPTIONS=detect_leaks=1',
],
]],
// Extra debug build with static libs, UBSan and hardening flags.
['fedora-38', [
numCores: 4,
tags: ['docker', 'UBSanitizer'],
builds: ['debug'],
extraBuildFlags: [
'BUILD_SHARED_LIBS:BOOL=OFF',
'CAF_SANITIZERS:STRING=address,undefined',
],
extraBuildEnv: [
'CXXFLAGS=-fno-sanitize-recover=undefined -D_GLIBCXX_DEBUG',
'LDFLAGS=-fno-sanitize-recover=undefined',
],
]],
],
]
// Declarative pipeline for triggering all stages.
pipeline {
options {
buildDiscarder(logRotator(numToKeepStr: '50', artifactNumToKeepStr: '3'))
}
agent {
label 'master'
}
environment {
PrettyJobBaseName = env.JOB_BASE_NAME.replace('%2F', '/')
PrettyJobName = "CAF/$PrettyJobBaseName #${env.BUILD_NUMBER}"
}
stages {
stage('Checkout') {
steps {
getSources(config)
}
}
stage('Build') {
steps {
buildParallel(config)
}
}
stage('Notify') {
steps {
collectResults(config, PrettyJobName)
}
}
}
post {
failure {
emailext(
subject: "$PrettyJobName: " + config['checks'].collect{ "⛔️ ${it}" }.join(', '),
recipientProviders: [culprits(), developers(), requestor(), upstreamDevelopers()],
attachLog: true,
compressLog: true,
body: "Check console output at ${env.BUILD_URL} or see attached log.\n",
)
notifyAllChecks(config, 'failure', 'Failed due to earlier error')
}
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment