+- job-template:
+ name: lttng-modules_{mversion}_{buildtype}-vanilla
+ defaults: lttng-modules
+ description: |
+ The LTTng modules provide Linux kernel tracing capability to the LTTng
+ 2.0 tracer toolset.
+
+ This job will build the {mversion} branch against all stable vanilla
+ kernel tags.
+
+ <p>Job is managed by Jenkins Job Builder.</p>
+
+ node: 'master'
+
+ parameters:
+ - string:
+ name: 'mversion'
+ default: '{mversion}'
+ description: 'The lttng-modules branch to build.'
+ - string:
+ name: 'maxConcurrentBuild'
+ default: '20'
+ description: 'The maximum number of concurrent child build to run.'
+ - string:
+ name: 'kverfloor'
+ default: '{kverfloor}'
+ description: 'The lowest kernel version to build.'
+ - string:
+ name: 'kverceil'
+ default: '{kverceil}'
+ description: 'The highest kernel version to build. (excluded)'
+ - string:
+ name: 'kverfilter'
+ default: '{kverfilter}'
+ description: 'Kernel versions list filtering strategy.'
+ - string:
+ name: 'kgitrepo'
+ default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
+ description: 'The linux kernel git repository url.'
+ - string:
+ name: 'kbuildjob'
+ default: 'lttng-modules_VERSION_param-{buildtype}'
+ description: 'The parametrized job to use for child builds.'
+
+ builders:
+ - system-groovy:
+ command:
+ !include-raw-escape: scripts/lttng-modules/master-vanilla.groovy
+
+ publishers:
+ - workspace-cleanup
+
+- job-template:
+ name: lttng-modules_{mversion}_build-{uversion}
+ defaults: lttng-modules
+ description: |
+ The LTTng modules provide Linux kernel tracing capability to the LTTng
+ 2.0 tracer toolset.
+
+ This job will build the {mversion} branch against all Ubuntu {uversion}
+ released kernels, including the LTS backport kernels.
+
+ <p>Job is managed by Jenkins Job Builder.</p>
+
+ node: 'master'
+
+ parameters:
+ - string:
+ name: 'mversion'
+ default: '{mversion}'
+ description: 'The lttng-modules branch to build.'
+ - string:
+ name: 'maxConcurrentBuild'
+ default: '20'
+ description: 'The maximum number of concurrent child build to run.'
+ - string:
+ name: 'uversion'
+ default: '{uversion}'
+ description: 'The lowest kernel version to build.'
+ - string:
+ name: 'kgitrepo'
+ default: 'git://git-mirror.internal.efficios.com/git/ubuntu-{uversion}.git'
+ description: 'The linux kernel git repository url.'
+ - string:
+ name: 'kbuildjob'
+ default: 'lttng-modules_VERSION_param-build'
+ description: 'The parametrized job to use for child builds.'
+
+ builders:
+ - system-groovy:
+ command:
+ !include-raw-escape: scripts/lttng-modules/master-ubuntu.groovy
+
+ publishers:
+ - workspace-cleanup
+
+- job-template:
+ name: lttng-modules_{mversion}_build-rt
+ defaults: lttng-modules
+ description: |
+ The LTTng modules provide Linux kernel tracing capability to the LTTng
+ 2.0 tracer toolset.
+
+ This job will build the {mversion} branch against all Linutronix RT
+ kernels.
+
+ <p>Job is managed by Jenkins Job Builder.</p>
+
+ node: 'master'
+
+ parameters:
+ - string:
+ name: 'mversion'
+ default: '{mversion}'
+ description: 'The lttng-modules branch to build.'
+ - string:
+ name: 'maxConcurrentBuild'
+ default: '20'
+ description: 'The maximum number of concurrent child build to run.'
+ - string:
+ name: 'kverfloor'
+ default: 'v2.6.36-rt0-rebase'
+ description: 'The lowest kernel version to build.'
+ - string:
+ name: 'kgitrepo'
+ default: 'git://git-mirror.internal.efficios.com/kernel/rt/linux-rt-devel.git'
+ description: 'The linux kernel git repository url.'
+ - string:
+ name: 'kbuildjob'
+ default: 'lttng-modules_VERSION_param-build'
+ description: 'The parametrized job to use for child builds.'
+
+ builders:
+ - system-groovy:
+ command:
+ !include-raw-escape: scripts/lttng-modules/master-rt.groovy
+
+ publishers:
+ - workspace-cleanup
+
+- job-template:
+ name: lttng-modules_VERSION_param-build
+ defaults: lttng-modules
+ description: |
+ This is a parametrized job used by 'master' jobs to build any combinations
+ of lttng-modules and linux kernel versions.
+
+ <p>Job is managed by Jenkins Job Builder.</p>
+
+ project-type: matrix
+ node: 'master' # Applies only to matrix flyweight task
+ axes:
+ - axis:
+ type: slave
+ name: arch
+ values: '{obj:arch}'
+
+ properties:
+ - build-discarder:
+ days-to-keep: 2
+
+ parameters:
+ - string:
+ name: 'mversion'
+ default: 'master'
+ description: 'The lttng-modules branch to build.'
+ - string:
+ name: 'kversion'
+ default: ''
+ description: 'The linux kernel git tag to build against.'
+ - string:
+ name: 'kgitrepo'
+ default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
+ description: 'The linux kernel git repository url.'
+
+ concurrent: true
+
+ scm:
+ - git:
+ url: git://github.com/lttng/lttng-modules.git
+ browser: githubweb
+ browser-url: https://github.com/lttng/lttng-modules
+ branches:
+ - "${{mversion}}"
+ skip-tag: true
+ basedir: src/lttng-modules
+
+ triggers:
+
+ builders:
+ - shell: |
+ git clone --depth=1 -b "$kversion" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
+ - shell:
+ !include-raw-escape: scripts/lttng-modules/param-build.sh
+
+ publishers:
+ - workspace-cleanup
+
+- job-template:
+ name: lttng-modules_VERSION_param-crossbuild
+ defaults: lttng-modules
+ description: |
+ This is a parametrized job used by 'master' jobs to build any combinations
+ of lttng-modules and linux kernel versions.
+
+ <p>Job is managed by Jenkins Job Builder.</p>
+
+ project-type: matrix
+ node: 'master' # Applies only to matrix flyweight task
+ axes:
+ - axis:
+ type: user-defined
+ name: cross_arch
+ values: '{obj:cross_arch}'
+
+ properties:
+ - build-discarder:
+ days-to-keep: 2
+
+ parameters:
+ - string:
+ name: 'mversion'
+ default: 'master'
+ description: 'The lttng-modules branch to build.'
+ - string:
+ name: 'kversion'
+ default: ''
+ description: 'The linux kernel git tag to build against.'
+ - string:
+ name: 'kgitrepo'
+ default: 'git://git-mirror.internal.efficios.com/git/linux-all.git'
+ description: 'The linux kernel git repository url.'
+
+ concurrent: true
+
+ scm:
+ - git:
+ url: git://github.com/lttng/lttng-modules.git
+ browser: githubweb
+ browser-url: https://github.com/lttng/lttng-modules
+ branches:
+ - "${{mversion}}"
+ skip-tag: true
+ basedir: src/lttng-modules
+
+ triggers:
+
+ builders:
+ - shell: |
+ git clone --depth=1 -b "$kversion" --reference $HOME/gitcache/linux-stable.git/ "$kgitrepo" src/linux
+ - shell:
+ !include-raw-escape: scripts/lttng-modules/param-build.sh
+
+ publishers:
+ - workspace-cleanup
+
+- job-template:
+ name: lttng-modules_{mversion}_coverity
+ defaults: lttng-modules
+ node: 'x86-64'
+
+ triggers:
+ - pollscm:
+ cron: "@daily"
+
+ wrappers:
+ - workspace-cleanup
+ - timestamps
+ - ansicolor:
+ colormap: xterm
+ - credentials-binding:
+ - username-password-separated:
+ credential-id: lttng-modules_coverity_token
+ username: COVERITY_SCAN_PROJECT_NAME
+ password: COVERITY_SCAN_TOKEN
+
+ builders:
+ - shell: |
+ git clone --depth=1 -b v4.9 --reference $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git src/linux
+ cd src/linux
+ make defconfig
+ sed -i "s/# CONFIG_KALLSYMS_ALL is not set/CONFIG_KALLSYMS_ALL=y/g" .config
+ make modules_prepare
+ - shell:
+ !include-raw-escape: scripts/common/coverity.sh
+
+ publishers:
+ - workspace-cleanup
+
+- job-template:
+ name: lttng-modules_{mversion}_cppcheck
+ defaults: lttng-modules
+
+ triggers:
+ - pollscm:
+ cron: "@daily"
+
+ builders:
+ - shell: |
+ rm -f cppcheck.xml
+ cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/lttng-modules 2> cppcheck.xml
+
+ publishers:
+ - archive:
+ artifacts: 'cppcheck.xml'
+ allow-empty: false
+ - cppcheck:
+ pattern: 'cppcheck.xml'
+ - email:
+ recipients: 'ci-notification@lists.lttng.org'
+ notify-every-unstable-build: true
+ send-to-individuals: false
+
+- job-template:
+ name: lttng-modules_{mversion}_sloccount
+ defaults: lttng-modules
+ description: |
+ The LTTng modules provide Linux kernel tracing capability to the LTTng
+ 2.0 tracer toolset.
+
+ This job runs the sloccount utility and generates a trend report.
+
+ <p>Job is managed by Jenkins Job Builder.</p>
+
+ triggers:
+ - pollscm:
+ cron: "@daily"
+
+ builders:
+ - shell: |
+ cloc --by-file --xml --out=cloc.xml src/lttng-modules/
+
+ publishers:
+ - archive:
+ artifacts: 'cloc.xml'
+ allow-empty: false
+ - sloccount:
+ report-files: 'cloc.xml'
+