--- /dev/null
+test/
+.venv/
--- /dev/null
+# {project}_{version}_{jobtype}
+# liburcu_stable-0.8_build
+#
+# jobtypes:
+# - build
+# - portbuild
+# - cppcheck
+# - coverity
+# - scan-build
+# - pylint
+
+- defaults:
+ name: liburcu
+ description: |
+ liburcu is a LGPLv2.1 userspace RCU (read-copy-update) library. This
+ data synchronization library provides read-side access which scales
+ linearly with the number of cores. It does so by allowing multiples
+ copies of a given data structure to live at the same time, and by
+ monitoring the data structure accesses to detect grace periods after
+ which memory reclamation is possible.
+
+ liburcu-cds provides efficient data structures based on RCU and
+ lock-free algorithms. Those structures include hash tables, queues,
+ stacks, and doubly-linked lists.
+
+ <p>Job is managed by Jenkins Job Builder.</p>
+
+ project-type: freestyle
+
+ logrotate:
+ daysToKeep: -1
+ numToKeep: 2
+ artifactDaysToKeep: -1
+ artifactNumToKeep: -1
+
+ wrappers:
+ - workspace-cleanup
+ - timestamps
+ - ansicolor
+
+ scm:
+ - git:
+ url: https://github.com/urcu/userspace-rcu.git
+ browser: githubweb
+ browser-url: https://github.com/urcu/userspace-rcu.git
+ branches:
+ - origin/{version}
+
+ triggers:
+ - pollscm: "@hourly"
+
+ properties:
+ - github:
+ url: https://github.com/urcu/userspace-rcu/
+
+
+## Templates
+- job-template:
+ name: liburcu_{version}_build
+ defaults: liburcu
+
+ project-type: matrix
+ axes:
+ - axis:
+ type: slave
+ name: arch
+ values:
+ - x86-32
+ - x86-64
+ - axis:
+ type: user-defined
+ name: conf
+ values:
+ - std
+ - static
+ - tls_fallback
+ - axis:
+ type: user-defined
+ name: build
+ values:
+ - std
+ - oot
+ - dist
+
+ builders:
+ - shell:
+ !include-raw-escape scripts/liburcu/build.sh
+
+ # TODO: Scan for open tasks
+ publishers:
+ - warnings:
+ console-log-parsers:
+ - 'GNU Make + GNU C Compiler (gcc)'
+ - archive:
+ artifacts: 'build/**'
+ allow-empty: false
+ fingerprint: true
+ - trigger:
+ project: lttng-ust-{version}
+ threshold: SUCCESS
+
+- job-template:
+ name: liburcu_{version}_cppcheck
+ defaults: liburcu
+
+ triggers:
+ - pollscm: "@daily"
+
+ builders:
+ - shell: |
+ rm -f liburcu-cppcheck.xml
+ cppcheck --enable=all --xml --xml-version=2 $WORKSPACE 2> liburcu-cppcheck.xml
+
+ publishers:
+ - archive:
+ artifacts: 'liburcu-cppcheck.xml'
+ allow-empty: false
+ fingerprint: true
+ - cppcheck:
+ pattern: 'liburcu-cppcheck.xml'
+ - email:
+ recipients: 'ci-notification@lists.lttng.org'
+ notify-every-unstable-build: true
+ send-to-individuals: false
+
+- job-template:
+ name: liburcu_{version}_scan-build
+ defaults: liburcu
+ node: 'x86-64'
+
+ triggers:
+ - pollscm: "@daily"
+
+ builders:
+ - shell:
+ !include-raw-escape scripts/liburcu/scan-build.sh
+
+ publishers:
+ - html-publisher:
+ name: 'HTML Report'
+ dir: 'scan-build-archive/'
+ files: 'index.html'
+
+# TODO: liburcu_{version}_coverity
+
+
+## Project
+- project:
+ name: liburcu
+ version:
+ - stable-0.7
+ - stable-0.8
+ - master
+ jobs:
+ - 'liburcu_{version}_build'
+ - 'liburcu_{version}_cppcheck'
+ - 'liburcu_{version}_scan-build'
+
--- /dev/null
+#!/bin/sh
+#
+# Copyright (C) 2015 - Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# Create build directory
+rm -rf $WORKSPACE/build
+mkdir -p $WORKSPACE/build
+
+PREFIX="$WORKSPACE/build"
+
+./bootstrap
+
+CONF_OPTS=""
+
+case "$conf" in
+static)
+ echo "Static build"
+ CONF_OPTS="--enable-static --disable-shared"
+ ;;
+tls_fallback)
+ echo "Using pthread_getspecific() to emulate TLS"
+ CONF_OPTS="--disable-compiler-tls"
+ ;;
+*)
+ echo "Standard build"
+ CONF_OPTS=""
+ ;;
+esac
+
+# Build type
+# oot : out-of-tree build
+# dist: build via make dist
+# * : normal tree build
+#
+# Make sure to move to the build_path and configure
+# before continuing
+
+BUILD_PATH=$WORKSPACE
+case "$build" in
+ oot)
+ echo "Out of tree build"
+ BUILD_PATH=$WORKSPACE/oot
+ mkdir -p $BUILD_PATH
+ cd $BUILD_PATH
+ $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS
+ ;;
+ dist)
+ echo "Distribution out of tree build"
+ BUILD_PATH=`mktemp -d`
+
+ # Initial configure and generate tarball
+ ./configure
+ make dist
+
+ mkdir -p $BUILD_PATH
+ cp *.tar.* $BUILD_PATH/
+ cd $BUILD_PATH
+
+ # Ignore level 1 of tar
+ tar xvf *.tar.* --strip 1
+
+ $BUILD_PATH/configure --prefix=$PREFIX $CONF_OPTS
+ ;;
+ *)
+ BUILD_PATH=$WORKSPACE
+ echo "Standard tree build"
+ $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS
+ ;;
+esac
+
+make
+make install
+make clean
+
+# Cleanup rpath and libtool .la files
+find $WORKSPACE/build/lib -name "*.so" -exec chrpath --delete {} \;
+find $WORKSPACE/build/lib -name "*.la" -exec rm -f {} \;
+
+# Cleanup temp directory of dist build
+if [ $build = "dist" ]; then
+ rm -rf $BUILD_PATH
+fi
--- /dev/null
+#!/bin/sh
+#
+# Copyright (C) 2015 - Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# do not exit immediately if any command fails
+set +e
+
+# temp directory to store the scan-build report
+SCAN_BUILD_TMPDIR=$( mktemp -d /tmp/scan-build.XXXXXX )
+
+# directory to use for archiving the scan-build report
+SCAN_BUILD_ARCHIVE="${WORKSPACE}/scan-build-archive"
+
+# Create build directory
+rm -rf $WORKSPACE/build
+mkdir -p $WORKSPACE/build
+
+export CFLAGS="-O0 -g -DDEBUG"
+PREFIX="$WORKSPACE/build"
+
+./bootstrap
+./configure --prefix=$PREFIX
+make clean
+# generate the scan-build report
+scan-build -k -o ${SCAN_BUILD_TMPDIR} make
+
+# get the directory name of the report created by scan-build
+SCAN_BUILD_REPORT=$( find ${SCAN_BUILD_TMPDIR} -maxdepth 1 -not -empty -not -name `basename ${SCAN_BUILD_TMPDIR}` )
+rc=$?
+
+if [ -z "${SCAN_BUILD_REPORT}" ]; then
+ echo ">>> No new bugs identified."
+ echo ">>> No scan-build report has been generated"
+else
+ echo ">>> New scan-build report generated in ${SCAN_BUILD_REPORT}"
+
+ if [ ! -d "${SCAN_BUILD_ARCHIVE}" ]; then
+ echo ">>> Creating scan-build archive directory"
+ install -d -o jenkins -g jenkins -m 0755 "${SCAN_BUILD_ARCHIVE}"
+ else
+ echo ">>> Removing any previous scan-build reports from ${SCAN_BUILD_ARCHIVE}"
+ rm -f ${SCAN_BUILD_ARCHIVE}/*
+ fi
+
+ echo ">>> Archiving scan-build report to ${SCAN_BUILD_ARCHIVE}"
+ mv ${SCAN_BUILD_REPORT}/* ${SCAN_BUILD_ARCHIVE}/
+
+ echo ">>> Removing any temporary files and directories"
+ rm -rf "${SCAN_BUILD_TMPDIR}"
+fi
+
+exit ${rc}
+++ /dev/null
-# Create build directory
-rm -rf $WORKSPACE/build
-mkdir -p $WORKSPACE/build
-
-PREFIX="$WORKSPACE/build"
-
-./bootstrap
-
-CONF_OPTS=""
-
-case "$conf" in
-static)
- echo "Static build"
- CONF_OPTS="--enable-static --disable-shared"
- ;;
-tls_fallback)
- echo "Using pthread_getspecific() to emulate TLS"
- CONF_OPTS="--disable-compiler-tls"
- ;;
-*)
- echo "Standard build"
- CONF_OPTS=""
- ;;
-esac
-
-./configure --prefix=$PREFIX $CONF_OPTS
-
-make
-make install
-make clean
-
-# Cleanup rpath and libtool .la files
-find $WORKSPACE/build/lib -name "*.so" -exec chrpath --delete {} \;
-find $WORKSPACE/build/lib -name "*.la" -exec rm -f {} \;
+++ /dev/null
-# Create build directory
-rm -rf $WORKSPACE/build
-mkdir -p $WORKSPACE/build
-
-PREFIX="$WORKSPACE/build"
-
-./bootstrap
-
-CONF_OPTS=""
-
-case "$conf" in
-static)
- echo "Static build"
- CONF_OPTS="--enable-static --disable-shared"
- ;;
-tls_fallback)
- echo "Using pthread_getspecific() to emulate TLS"
- CONF_OPTS="--disable-compiler-tls"
- ;;
-*)
- echo "Standard build"
- CONF_OPTS=""
- ;;
-esac
-
-# Build type
-# oot : out-of-tree build
-# dist: build via make dist
-# * : normal tree build
-#
-# Make sure to move to the build_path and configure
-# before continuing
-
-BUILD_PATH=$WORKSPACE
-case "$build" in
- oot)
- echo "Out of tree build"
- BUILD_PATH=$WORKSPACE/oot
- mkdir -p $BUILD_PATH
- cd $BUILD_PATH
- $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS
- ;;
- dist)
- echo "Distribution out of tree build"
- BUILD_PATH=`mktemp -d`
-
- # Initial configure and generate tarball
- ./configure
- make dist
-
- mkdir -p $BUILD_PATH
- cp *.tar.* $BUILD_PATH/
- cd $BUILD_PATH
-
- # Ignore level 1 of tar
- tar xvf *.tar.* --strip 1
-
- $BUILD_PATH/configure --prefix=$PREFIX $CONF_OPTS
- ;;
- *)
- BUILD_PATH=$WORKSPACE
- echo "Standard tree build"
- $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS
- ;;
-esac
-
-make
-make install
-make clean
-
-# Cleanup rpath and libtool .la files
-find $WORKSPACE/build/lib -name "*.so" -exec chrpath --delete {} \;
-find $WORKSPACE/build/lib -name "*.la" -exec rm -f {} \;
-
-# Cleanup temp directory of dist build
-if [ $build = "dist" ]; then
- rm -rf $BUILD_PATH
-fi
+++ /dev/null
-# Create build directory
-rm -rf $WORKSPACE/build
-mkdir -p $WORKSPACE/build
-
-PREFIX="$WORKSPACE/build"
-
-./bootstrap
-
-CONF_OPTS=""
-
-case "$conf" in
-static)
- echo "Static build"
- CONF_OPTS="--enable-static --disable-shared"
- ;;
-tls_fallback)
- echo "Using pthread_getspecific() to emulate TLS"
- CONF_OPTS="--disable-compiler-tls"
- ;;
-*)
- echo "Standard build"
- CONF_OPTS=""
- ;;
-esac
-
-./configure --prefix=$PREFIX $CONF_OPTS
-
-make
-make install
-make clean
-
-# Cleanup rpath and libtool .la files
-find $WORKSPACE/build/lib -name "*.so" -exec chrpath --delete {} \;
-find $WORKSPACE/build/lib -name "*.la" -exec rm -f {} \;
+++ /dev/null
-# Create build directory
-rm -rf $WORKSPACE/build
-mkdir -p $WORKSPACE/build
-
-PREFIX="$WORKSPACE/build"
-
-./bootstrap
-
-CONF_OPTS=""
-
-case "$conf" in
-static)
- echo "Static build"
- CONF_OPTS="--enable-static --disable-shared"
- ;;
-tls_fallback)
- echo "Using pthread_getspecific() to emulate TLS"
- CONF_OPTS="--disable-compiler-tls"
- ;;
-*)
- echo "Standard build"
- CONF_OPTS=""
- ;;
-esac
-
-# Build type
-# oot : out-of-tree build
-# dist: build via make dist
-# * : normal tree build
-#
-# Make sure to move to the build_path and configure
-# before continuing
-
-BUILD_PATH=$WORKSPACE
-case "$build" in
- oot)
- echo "Out of tree build"
- BUILD_PATH=$WORKSPACE/oot
- mkdir -p $BUILD_PATH
- cd $BUILD_PATH
- $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS
- ;;
- dist)
- echo "Distribution out of tree build"
- BUILD_PATH=`mktemp -d`
-
- # Initial configure and generate tarball
- ./configure
- make dist
-
- mkdir -p $BUILD_PATH
- cp *.tar.* $BUILD_PATH/
- cd $BUILD_PATH
-
- # Ignore level 1 of tar
- tar xvf *.tar.* --strip 1
-
- $BUILD_PATH/configure --prefix=$PREFIX $CONF_OPTS
- ;;
- *)
- BUILD_PATH=$WORKSPACE
- echo "Standard tree build"
- $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS
- ;;
-esac
-
-make
-make install
-make clean
-
-# Cleanup rpath and libtool .la files
-find $WORKSPACE/build/lib -name "*.so" -exec chrpath --delete {} \;
-find $WORKSPACE/build/lib -name "*.la" -exec rm -f {} \;
-
-# Cleanup temp directory of dist build
-if [ $build = "dist" ]; then
- rm -rf $BUILD_PATH
-fi
+++ /dev/null
-# Create build directory
-rm -rf $WORKSPACE/build
-mkdir -p $WORKSPACE/build
-
-PREFIX="$WORKSPACE/build"
-
-./bootstrap
-
-CONF_OPTS=""
-
-case "$conf" in
-static)
- echo "Static build"
- CONF_OPTS="--enable-static --disable-shared"
- ;;
-tls_fallback)
- echo "Using pthread_getspecific() to emulate TLS"
- CONF_OPTS="--disable-compiler-tls"
- ;;
-*)
- echo "Standard build"
- CONF_OPTS=""
- ;;
-esac
-
-# Build type
-# oot : out-of-tree build
-# dist: build via make dist
-# * : normal tree build
-#
-# Make sure to move to the build_path and configure
-# before continuing
-
-BUILD_PATH=$WORKSPACE
-case "$build" in
- oot)
- echo "Out of tree build"
- BUILD_PATH=$WORKSPACE/oot
- mkdir -p $BUILD_PATH
- cd $BUILD_PATH
- $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS
- ;;
- dist)
- echo "Distribution out of tree build"
- BUILD_PATH=`mktemp -d`
-
- # Initial configure and generate tarball
- ./configure
- make dist
-
- mkdir -p $BUILD_PATH
- cp *.tar.* $BUILD_PATH/
- cd $BUILD_PATH
-
- # Ignore level 1 of tar
- tar xvf *.tar.* --strip 1
-
- $BUILD_PATH/configure --prefix=$PREFIX $CONF_OPTS
- ;;
- *)
- BUILD_PATH=$WORKSPACE
- echo "Standard tree build"
- $WORKSPACE/configure --prefix=$PREFIX $CONF_OPTS
- ;;
-esac
-
-make
-make install
-make clean
-
-# Cleanup rpath and libtool .la files
-find $WORKSPACE/build/lib -name "*.so" -exec chrpath --delete {} \;
-find $WORKSPACE/build/lib -name "*.la" -exec rm -f {} \;
-
-# Cleanup temp directory of dist build
-if [ $build = "dist" ]; then
- rm -rf $BUILD_PATH
-fi