summaryrefslogtreecommitdiff
path: root/build-aux
diff options
context:
space:
mode:
authorAdam Kocoloski <kocolosk@apache.org>2022-01-14 12:49:35 -0500
committerGitHub <noreply@github.com>2022-01-14 12:49:35 -0500
commitc0d1a74428783f652987006438c47d974abe48c6 (patch)
treed1b86a974abab8f29667b230f68ab41c30be1be6 /build-aux
parent7954acafa0ab8bc1b8738e66471ea999bcb89ccd (diff)
downloadcouchdb-c0d1a74428783f652987006438c47d974abe48c6.tar.gz
Use Debian Stable, add Erlang 24 to CI (#3895)
* Use Debian Stable, add Erlang 24 to CI * Use specific images for each Erlang version Instead of building one image with all supported Erlang versions through kerl, this configuration looks for a specific container image for each Erlang version. Decoupling it like this enables us to more easily adopt newer distros for newer Erlang versions, and to build new images with patch releases of Erlang without needing a simultaneous PR to the CouchDB repo to pick them up in CI (although some change to Jenkins might be needed to avoid images being cached for too long when a stable tag changes). * Bump Credo to 1.5.6 for Elixir 1.12 support
Diffstat (limited to 'build-aux')
-rw-r--r--build-aux/Jenkinsfile.pr45
1 files changed, 34 insertions, 11 deletions
diff --git a/build-aux/Jenkinsfile.pr b/build-aux/Jenkinsfile.pr
index 9902eea35..2f91961c5 100644
--- a/build-aux/Jenkinsfile.pr
+++ b/build-aux/Jenkinsfile.pr
@@ -20,8 +20,7 @@ mkdir build
cd build
tar -xf ${WORKSPACE}/apache-couchdb-*.tar.gz
cd apache-couchdb-*
-. /usr/local/kerl/${ERLANG_VERSION}/activate
-./configure --spidermonkey-version 60
+./configure
make check || (make build-report && false)
'''
@@ -39,7 +38,7 @@ pipeline {
GIT_COMMITTER_NAME = 'Jenkins User'
GIT_COMMITTER_EMAIL = 'couchdb@apache.org'
// Parameters for the matrix build
- DOCKER_IMAGE = 'apache/couchdbci-debian:buster-erlang-all'
+ DOCKER_IMAGE_BASE = 'apache/couchdbci-debian:erlang'
// https://github.com/jenkins-infra/jenkins.io/blob/master/Jenkinsfile#64
// We need the jenkins user mapped inside of the image
// npm config cache below deals with /home/jenkins not mapping correctly
@@ -50,11 +49,11 @@ pipeline {
// Search for ERLANG_VERSION
// see https://issues.jenkins.io/browse/JENKINS-61047 for why this cannot
// be done parametrically
- LOW_ERLANG_VER = '20.3.8.26'
+ LOW_ERLANG_VER = '20'
// erlfmt doesn't run with the lowest erlang version so we run it in a
// separate stage with a higher erlang version.
- ERLFMT_ERLANG_VER = '23.3.1'
+ ERLFMT_ERLANG_VER = '23'
}
options {
@@ -71,7 +70,7 @@ pipeline {
stage('erlfmt') {
agent {
docker {
- image "${DOCKER_IMAGE}"
+ image "${DOCKER_IMAGE_BASE}-${ERLFMT_ERLANG_VER}"
label 'docker'
args "${DOCKER_ARGS}"
registryUrl 'https://docker.io/'
@@ -85,7 +84,6 @@ pipeline {
sh '''
set
rm -rf apache-couchdb-*
- . /usr/local/kerl/${ERLFMT_ERLANG_VER}/activate
./configure --skip-deps
make erlfmt-check
'''
@@ -102,7 +100,7 @@ pipeline {
stage('Build Release Tarball') {
agent {
docker {
- image "${DOCKER_IMAGE}"
+ image "${DOCKER_IMAGE_BASE}-${LOW_ERLANG_VER}"
label 'docker'
args "${DOCKER_ARGS}"
registryUrl 'https://docker.io/'
@@ -116,7 +114,6 @@ pipeline {
sh '''
set
rm -rf apache-couchdb-*
- . /usr/local/kerl/${LOW_ERLANG_VER}/activate
./configure
make dist
chmod -R a+w * .
@@ -143,7 +140,33 @@ pipeline {
axes {
axis {
name 'ERLANG_VERSION'
- values '20.3.8.26', '21.3.8.22', '22.3.4.17', '23.3.1'
+ values '20', '21', '22', '23', '24'
+ }
+ axis {
+ name 'SM_VSN'
+ values '60', '78'
+ }
+ }
+ excludes {
+ exclude {
+ axis {
+ name 'ERLANG_VERSION'
+ values '20'
+ }
+ axis {
+ name 'SM_VSN'
+ notValues '60'
+ }
+ }
+ exclude {
+ axis {
+ name 'ERLANG_VERSION'
+ values '21', '22', '23', '24'
+ }
+ axis {
+ name 'SM_VSN'
+ notValues '78'
+ }
}
}
@@ -151,7 +174,7 @@ pipeline {
stage('Build and Test') {
agent {
docker {
- image "${DOCKER_IMAGE}"
+ image "${DOCKER_IMAGE_BASE}-${ERLANG_VERSION}"
label 'docker'
args "${DOCKER_ARGS}"
}