X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=jobs%2Flttng-modules.yaml;h=5e03d505524f2f180e1579cc454c704b60099e5c;hb=1f4fba8c3ff773bb4dfc8ba3d911a2ffe70c323c;hp=30622329cc86aaa8f93813cb865453633ac6eac6;hpb=4f3fef7db3cd4861b4af1d537dd1968eaee6fe88;p=lttng-ci.git diff --git a/jobs/lttng-modules.yaml b/jobs/lttng-modules.yaml index 3062232..5e03d50 100644 --- a/jobs/lttng-modules.yaml +++ b/jobs/lttng-modules.yaml @@ -2,17 +2,15 @@ - defaults: name: lttng-modules description: | - Build lttng-modules against different Linux kernels. + The LTTng modules provide Linux kernel tracing capability to the LTTng + 2.0 tracer toolset.

Job is managed by Jenkins Job Builder.

project-type: freestyle logrotate: - daysToKeep: -1 numToKeep: 2 - artifactDaysToKeep: -1 - artifactNumToKeep: -1 wrappers: - workspace-cleanup @@ -21,9 +19,9 @@ scm: - git: - url: git://github.com/lttng/lttng-modules.git + url: git://github.com/{github_user}/{github_name}.git browser: githubweb - browser-url: https://github.com/efficios/lttng-modules + browser-url: https://github.com/{github_user}/{github_name} branches: - "{mversion}" shallow-clone: true @@ -33,17 +31,11 @@ triggers: - pollscm: - cron: "@daily" + cron: "@hourly" properties: - github: - url: https://github.com/efficios/lttng-modules - - throttle: - max-per-node: 0 - max-total: 0 - option: category - categories: - - 'lttng-module-linux' + url: https://github.com/{github_user}/{github_name} ## Templates @@ -52,7 +44,7 @@ defaults: lttng-modules project-type: matrix - node: 'x86-32 || x86-64' # Applies only to matrix flyweight task + node: 'master' # Applies only to matrix flyweight task axes: - axis: type: slave @@ -70,7 +62,7 @@ - shell: | git clone --depth=1 -b "v{kversion}" --reference $HOME/gitcache/linux-stable.git/ git://artifacts.internal.efficios.com/git/linux-stable.git linux - shell: - !include-raw-escape scripts/lttng-modules/build.sh + !include-raw-escape: scripts/lttng-modules/build.sh publishers: - archive: @@ -79,7 +71,195 @@ - workspace-cleanup - job-template: - name: lttng-modules_{version}_coverity + name: lttng-modules_{mversion}_build-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. + +

Job is managed by Jenkins Job Builder.

+ + node: 'master' + + parameters: + - string: + name: 'mversion' + default: '{mversion}' + description: 'The lttng-modules branch to build.' + - string: + name: 'maxConcurrentBuild' + default: '4' + description: 'The maximum number of concurrent child build to run.' + - string: + name: 'kverfloor' + default: 'v2.6.36' + description: 'The lowest kernel version to build.' + - string: + name: 'kgitrepo' + default: 'git://artifacts.internal.efficios.com/git/linux-stable.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-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. + +

Job is managed by Jenkins Job Builder.

+ + node: 'master' + + parameters: + - string: + name: 'mversion' + default: '{mversion}' + description: 'The lttng-modules branch to build.' + - string: + name: 'maxConcurrentBuild' + default: '4' + 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://artifacts.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. + +

Job is managed by Jenkins Job Builder.

+ + node: 'master' + + parameters: + - string: + name: 'mversion' + default: '{mversion}' + description: 'The lttng-modules branch to build.' + - string: + name: 'maxConcurrentBuild' + default: '4' + 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://artifacts.internal.efficios.com/git/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. + +

Job is managed by Jenkins Job Builder.

+ + project-type: matrix + node: 'master' # Applies only to matrix flyweight task + axes: + - axis: + type: slave + name: arch + values: '{obj:arch}' + + 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://artifacts.internal.efficios.com/git/linux-stable.git' + description: 'The linux kernel git repository url.' + + concurrent: true + logrotate: + daysToKeep: 2 + + 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' @@ -87,6 +267,14 @@ - pollscm: cron: "@daily" + scm: + - git: + url: git://github.com/lttng/lttng-modules.git + browser: githubweb + browser-url: https://github.com/lttng/lttng-modules + branches: + - "{mversion}" + wrappers: - workspace-cleanup - timestamps @@ -99,25 +287,97 @@ password: COVERITY_SCAN_TOKEN builders: + - shell: | + git clone --depth=1 -b v4.4 --reference $HOME/gitcache/linux-stable.git/ git://artifacts.internal.efficios.com/git/linux-stable.git linux + cd linux + make defconfig + sed -i "s/# CONFIG_KALLSYMS_ALL is not set/CONFIG_KALLSYMS_ALL=y/g" .config + make modules_prepare + cd .. - shell: - !include-raw-escape scripts/common/coverity.sh + !include-raw-escape: scripts/common/coverity.sh publishers: - workspace-cleanup +- job-template: + name: lttng-modules_{mversion}_cppcheck + defaults: lttng-modules + + triggers: + - pollscm: + cron: "@daily" + + scm: + - git: + url: git://github.com/lttng/lttng-modules.git + browser: githubweb + browser-url: https://github.com/lttng/lttng-modules + branches: + - "{mversion}" + + builders: + - shell: | + rm -f cppcheck.xml + cppcheck --enable=all --xml --xml-version=2 $WORKSPACE 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. + +

Job is managed by Jenkins Job Builder.

+ + triggers: + - pollscm: + cron: "@daily" + + builders: + - shell: | + cloc --by-file --xml --out=cloc.xml lttng-modules/ + + publishers: + - archive: + artifacts: 'cloc.xml' + allow-empty: false + - sloccount: + report-files: 'cloc.xml' + + ## Project - project: name: lttng-modules + github_user: lttng + github_name: lttng-modules mversion: - !include jobs/inc/lttng-modules-versions.yaml.inc - kversion: - !include jobs/inc/kernel-versions.yaml.inc + !include: jobs/inc/lttng-modules-versions.yaml.inc jobs: - - 'lttng-modules_{mversion}_{kversion}_{buildtype}': - buildtype: build + - 'lttng-modules_{mversion}_build-vanilla' + - 'lttng-modules_{mversion}_build-rt': + mversion: master + - 'lttng-modules_{mversion}_build-{uversion}': + uversion: + - trusty + - xenial + - 'lttng-modules_VERSION_param-build': arch: !!python/tuple [x86-32, x86-64] - #- 'lttng-modules_{mversion}_{kversion}_{buildtype}': - # buildtype: portbuild - # arch: !!python/tuple [armhf, powerpc] - - 'lttng-modules_{version}_coverity': - version: master + - 'lttng-modules_{mversion}_cppcheck' + - 'lttng-modules_{mversion}_sloccount': + mversion: master + - 'lttng-modules_{mversion}_coverity': + mversion: master