X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=jobs%2Flttng-modules.yaml;h=744a712e3b24a14debc33bce469d212605aca031;hb=f295b56d1540f4098e2a1e5ad3571f76b7b31961;hp=7fd86282a96b4f43e61bb0a70e655858b6bab515;hpb=3f92376d5e038fb1b958e4a1cd872015b5a1b384;p=lttng-ci.git diff --git a/jobs/lttng-modules.yaml b/jobs/lttng-modules.yaml index 7fd8628..744a712 100644 --- a/jobs/lttng-modules.yaml +++ b/jobs/lttng-modules.yaml @@ -1,4 +1,5 @@ --- +## Defaults - defaults: name: lttng-modules description: | @@ -9,12 +10,6 @@ project-type: freestyle - logrotate: - daysToKeep: -1 - numToKeep: 2 - artifactDaysToKeep: -1 - artifactNumToKeep: -1 - wrappers: - workspace-cleanup - timestamps @@ -22,145 +17,1189 @@ scm: - git: - url: git://github.com/lttng/lttng-modules.git + url: https://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}" + - "refs/heads/{mversion}" shallow-clone: true - skip-tag: true fastpoll: true - basedir: lttng-modules + basedir: src/lttng-modules + wipe-workspace: false + skip-tag: true triggers: - pollscm: - cron: "@daily" + cron: "@hourly" properties: + - build-discarder: + num-to-keep: 10 + artifact-num-to-keep: 2 - github: - url: https://github.com/efficios/lttng-modules + url: https://github.com/{github_user}/{github_name} + + publishers: + - workspace-cleanup + - ircbot: <tng-modules_publisher_ircbot_defaults + strategy: statechange-only + message-type: summary + matrix-notifier: only-parent + - email-ext: <tng-modules_publisher_email-ext_defaults + recipients: '{obj:email_to}' + reply-to: ci-notification@lists.lttng.org + always: false + unstable: false + first-failure: true + first-unstable: true + not-built: false + aborted: false + regression: false + failure: false + second-failure: false + improvement: false + still-failing: false + success: false + fixed: false + fixed-unhealthy: true + still-unstable: false + pre-build: false + matrix-trigger: only-parent + send-to: + - recipients + + +## Anchors +- _lttng-modules_build_parameters_defaults: <tng-modules_build_parameters_defaults + name: 'lttng-modules_build_parameters_defaults' + parameters: + - 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: 'kverrc' + default: '{kverrc|true}' + description: 'Add latest RC to kernel versions list.' + - 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_PARAM_{parambuildtype}' + description: 'The parametrized job to use for child builds.' + +- _lttng-modules_build_parameters_review: <tng-modules_build_parameters_review + name: 'lttng-modules_build_parameters_review' + parameters: + - string: + name: 'maxConcurrentBuild' + default: '10' + 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: 'kverrc' + default: '{kverrc|true}' + description: 'Add latest RC to kernel versions list.' + - 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_PARAM_build' + description: 'The parametrized job to use for child builds.' + +- _lttng-modules_build_parameters_ubuntu: <tng-modules_build_parameters_el + name: 'lttng-modules_build_parameters_el' + parameters: + - 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: 'kverrc' + default: 'false' + description: 'Add latest RC to kernel versions list.' + - string: + name: 'kgitrepo' + default: 'git://git-mirror.internal.efficios.com/git/rocky.git' + description: 'The linux kernel git repository url.' + - string: + name: 'kbuildjob' + default: 'lttng-modules_PARAM_{parambuildtype}' + description: 'The parametrized job to use for child builds.' + - string: + name: 'elversion' + default: '{elversion}' + description: 'The EL release (eg. el8)' + - string: + name: 'getsrc_repo' + default: 'https://github.com/rocky-linux/rocky-tools.git' + description: 'The git repository that contains the getsrc tool' + - string: + name: 'getsrc_version' + default: 'main' + description: 'The tag or commit to use when cloning the getsrc tool' + +- _lttng-modules_build_parameters_ubuntu: <tng-modules_build_parameters_sles + name: 'lttng-modules_build_parameters_sles' + parameters: + - 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: 'kverrc' + default: 'false' + description: 'Add latest RC to kernel versions list.' + - string: + name: 'kgitrepo' + default: 'git://git-mirror.internal.efficios.com/git/sles.git' + description: 'The linux kernel git repository url.' + - string: + name: 'kbuildjob' + default: 'lttng-modules_PARAM_{parambuildtype}' + description: 'The parametrized job to use for child builds.' + - string: + name: 'slesversion' + default: '{slesversion}' + description: 'The SLES release (eg. sles15sp4)' + +- _lttng-modules_build_parameters_ubuntu: <tng-modules_build_parameters_ubuntu + name: 'lttng-modules_build_parameters_ubuntu' + parameters: + - 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: 'kverrc' + default: 'false' + description: 'Add latest RC to kernel versions list.' + - 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_PARAM_{parambuildtype}' + description: 'The parametrized job to use for child builds.' + - string: + name: 'uversion' + default: '{uversion}' + description: 'The lowest kernel version to build.' + +- _lttng-modules_build_parameters_rt: <tng-modules_build_parameters_rt + name: 'lttng-modules_build_parameters_rt' + parameters: + - 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: 'kverrc' + default: 'false' + description: 'Add latest RC to kernel versions list.' + - string: + name: 'kgitrepo' + default: 'git://git-mirror.internal.efficios.com/kernel/rt/linux-stable-rt.git' + description: 'The linux kernel git repository url.' + - string: + name: 'kbuildjob' + default: 'lttng-modules_PARAM_build' + description: 'The parametrized job to use for child builds.' + +- _lttng-modules_build_builders_defaults: <tng-modules_build_builders_defaults + name: 'lttng-modules_build_builders_defaults' + builders: + - system-groovy: + command: + !include-raw-escape: scripts/lttng-modules/master.groovy + +- _lttng-modules_build_rt_builders_defaults: <tng-modules_build_rt_builders_defaults + name: 'lttng-modules_build_rt_builders_defaults' + builders: + - system-groovy: + command: + !include-raw-escape: scripts/lttng-modules/master-rt.groovy + + +## Templates +- job-template: + name: lttng-modules_ALL_trigger-vanilla + defaults: lttng-modules + description: | + The LTTng modules provide Linux kernel tracing capability to the LTTng + 2.0 tracer toolset. + + This job will trigger the build jobs when a new tag is added to the vanilla + and stable kernel trees. + +
Job is managed by Jenkins Job Builder.
+ + node: 'master' + + wrappers: + - timestamps + - ansicolor + + scm: [] + + triggers: + # Check for new kernel tags everay day at 22:00 + - timed: "0 22 * * *" + + builders: + - system-groovy: + command: + !include-raw-escape: scripts/lttng-modules/trigger-vanilla.groovy + + publishers: [] + +- 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 stable vanilla + kernel tags. + +Job is managed by Jenkins Job Builder.
+ + node: 'master' + + triggers: + # Check for new commits every hour + - pollscm: + cron: "@hourly" + + <<: *lttng-modules_build_parameters_defaults + <<: *lttng-modules_build_builders_defaults + +- job-template: + name: dev_mjeanson_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 stable vanilla + kernel tags. + +Job is managed by Jenkins Job Builder.
+ + node: 'master' + + # This is a test job, no triggers + triggers: [] + + parameters: + - 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: 'kverrc' + default: 'true' + description: 'Add latest RC to kernel versions list.' + - 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: 'dev_mjeanson_lttng-modules_PARAM_{parambuildtype}' + description: 'The parametrized job to use for child builds.' + + <<: *lttng-modules_build_builders_defaults + +- job-template: + name: dev_review_lttng-modules_{mversion}_build + defaults: lttng-modules + concurrent: true + + node: 'master' + + scm: + - git: + url: https://review.lttng.org/lttng-modules + refspec: 'refs/changes/*:refs/changes/*' + branches: + - '$GERRIT_REFSPEC' + basedir: src/lttng-modules + skip-tag: true + + triggers: + - gerrit: + trigger-on: + - comment-added-event: + approval-category: 'CI-Build' + approval-value: 1 + projects: + - project-compare-type: 'PLAIN' + project-pattern: 'lttng-modules' + branches: + - branch-compare-type: 'PLAIN' + branch-pattern: '{mversion}' + + properties: + - build-discarder: + days-to-keep: 1 - throttle: - max-per-node: 0 - max-total: 0 - option: category + option: 'category' categories: - - 'lttng-module-linux' + - 'gerrit-build' + <<: *lttng-modules_build_parameters_review + <<: *lttng-modules_build_builders_defaults + + publishers: + - workspace-cleanup + +- job-template: + name: 'dev_review_lttng-modules_{mversion}_build-{elversion}' + defaults: lttng-modules + concurrent: true + + node: 'master' + + scm: + - git: + url: https://review.lttng.org/lttng-modules + refspec: 'refs/changes/*:refs/changes/*' + branches: + - '$GERRIT_REFSPEC' + basedir: src/lttng-modules + skip-tag: true + + triggers: + - gerrit: + trigger-on: + - comment-added-event: + approval-category: 'CI-Build' + approval-value: 1 + projects: + - project-compare-type: 'PLAIN' + project-pattern: 'lttng-modules' + branches: + - branch-compare-type: 'PLAIN' + branch-pattern: '{mversion}' + + properties: + - build-discarder: + days-to-keep: 1 + - throttle: + option: 'category' + categories: + - 'gerrit-build' + + <<: *lttng-modules_build_parameters_el + <<: *lttng-modules_build_builders_defaults + + publishers: + - workspace-cleanup + +- job-template: + name: 'dev_review_lttng-modules_{mversion}_build-{slesversion}' + defaults: lttng-modules + concurrent: true + + node: 'master' + + scm: + - git: + url: https://review.lttng.org/lttng-modules + refspec: 'refs/changes/*:refs/changes/*' + branches: + - '$GERRIT_REFSPEC' + basedir: src/lttng-modules + skip-tag: true + + triggers: + - gerrit: + trigger-on: + - comment-added-event: + approval-category: 'CI-Build' + approval-value: 1 + projects: + - project-compare-type: 'PLAIN' + project-pattern: 'lttng-modules' + branches: + - branch-compare-type: 'PLAIN' + branch-pattern: '{mversion}' + + properties: + - build-discarder: + days-to-keep: 1 + - throttle: + option: 'category' + categories: + - 'gerrit-build' + + <<: *lttng-modules_build_parameters_sles + <<: *lttng-modules_build_builders_defaults + + publishers: + - workspace-cleanup + +- job-template: + name: lttng-modules_{mversion}_fullbuild-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' + + <<: *lttng-modules_build_parameters_defaults + <<: *lttng-modules_build_builders_defaults + + triggers: + # Check for new commits every friday at midnight + - pollscm: + cron: "0 0 * * 5" + +- job-template: + name: 'lttng-modules_{mversion}_{buildtype}-{elversion}' + defaults: lttng-modules + description: | + The LTTng modules provide Linux kernel tracing capability to the LTTng + 2.0 tracer toolset. + + This job will the {mversion} branch against EL {elversion} released + kernels. + +Job is managed by Jenkins Job Builder.
+ + node: 'master' + triggers: + - pollscm: + cron: "@hourly" + - timed: "H 0 * * 6" + <<: *lttng-modules_build_parameters_el + <<: *lttng-modules_build_builders_defaults + +- job-template: + name: lttng-modules_{mversion}_{buildtype}-{slesversion} + defaults: lttng-modules + description: | + The LTTng modules provide Linux kernel tracing capability to the LTTng + 2.0 tracer toolset. + + This job will the {mversion} branch against SLES {slesversion} released + kernels. + +Job is managed by Jenkins Job Builder.
+ + node: 'master' + triggers: + - pollscm: + cron: "@hourly" + - timed: "H 0 * * 6" + <<: *lttng-modules_build_parameters_sles + <<: *lttng-modules_build_builders_defaults + +- job-template: + name: lttng-modules_{mversion}_{buildtype}-{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 Ubuntu {uversion} + released kernels, including the LTS backport kernels. + +Job is managed by Jenkins Job Builder.
+ + node: 'master' + + triggers: + # Check for new commits every hour + - pollscm: + cron: "@hourly" + # Also run every saturday at midnight to catch new ubuntu kernel tags + - timed: "0 0 * * 6" + + <<: *lttng-modules_build_parameters_ubuntu + <<: *lttng-modules_build_builders_defaults + +- job-template: + name: lttng-modules_{mversion}_fullbuild-{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 Ubuntu {uversion} + released kernels, including the LTS backport kernels. + +Job is managed by Jenkins Job Builder.
+ + node: 'master' + + <<: *lttng-modules_build_parameters_ubuntu + <<: *lttng-modules_build_builders_defaults + + triggers: + - pollscm: + cron: "@midnight" + +- 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' + + triggers: + # Check for new commits every hour + - pollscm: + cron: "@hourly" + # Also run every sunday at midnight to catch new rt kernel tags + - timed: "0 0 * * 7" + + <<: *lttng-modules_build_parameters_rt + <<: *lttng-modules_build_rt_builders_defaults -## Templates - job-template: - name: lttng-modules_{mversion}_{kversion}_{buildtype} + name: lttng-modules_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}' + type: slave + name: platforms + values: '{obj:platforms}' + + properties: + - build-discarder: + days-to-keep: 2 + + parameters: + - string: + name: 'mversion' + default: 'master' + description: 'The lttng-modules branch to build.' + - string: + name: 'mgitrepo' + default: 'git://git-mirror.internal.efficios.com/lttng/lttng-modules.git' + description: 'The lttng-modules git repository url.' + - string: + name: 'ktag' + 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.' + - string: + name: 'distroversion' + default: '' + description: 'Supplementary distribution version, eg. sles15sp4 or el8' + - string: + name: 'getsrc_repo' + default: 'https://github.com/rocky-linux/rocky-tools.git' + description: 'The git repository that contains the getsrc tool' + - string: + name: 'getsrc_version' + default: 'main' + description: 'The tag or commit to use when cloning the getsrc tool' + + concurrent: true + + scm: [] + + triggers: [] builders: - - copyartifact: - project: kernel_{kversion}_{buildtype}/arch=$arch - which-build: last-successful - stable: true - filter: 'build/**' - target: 'deps/linux' - do-not-fingerprint: true - - shell: | - git clone --depth=1 -b "v{kversion}" --reference $HOME/gitcache/linux-stable.git/ git://artifacts.internal.efficios.com/git/linux-stable.git linux + - conditional-step: + condition-kind: regex-match + label: '$distroversion' + regex: '^el.*$' + steps: + - shell: | + #!/bin/bash + set -exu + git clone -b "$getsrc_version" "$getsrc_repo" src/getsrc - shell: - !include-raw-escape: scripts/lttng-modules/build.sh + !include-raw-escape: scripts/lttng-modules/param-build.sh publishers: - - archive: - artifacts: 'build/**' - allow-empty: false - workspace-cleanup - job-template: - name: lttng-modules_{mversion}_coverity + name: dev_mjeanson_lttng-modules_PARAM_build defaults: lttng-modules - node: 'x86-64' + description: | + This is a parametrized job used by 'master' jobs to build any combinations + of lttng-modules and linux kernel versions. - triggers: - - pollscm: - cron: "@daily" +Job is managed by Jenkins Job Builder.
- scm: - - git: - url: git://github.com/lttng/lttng-modules.git - browser: githubweb - browser-url: https://github.com/efficios/lttng-modules - branches: - - "{mversion}" + project-type: matrix + node: 'master' # Applies only to matrix flyweight task + axes: + - axis: + type: slave + name: platforms + values: '{obj:platforms}' - wrappers: + properties: + - build-discarder: + days-to-keep: 2 + + parameters: + - string: + name: 'mversion' + default: 'master' + description: 'The lttng-modules branch to build.' + - string: + name: 'mgitrepo' + default: 'https://github.com/{github_user}/lttng-modules.git' + description: 'The lttng-modules git repository url.' + - string: + name: 'ktag' + 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: [] + + triggers: [] + + builders: + - shell: + !include-raw-escape: scripts/lttng-modules/param-build.sh + + publishers: - 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 + + +- job-template: + name: dev_mjeanson_lttng-modules_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. + +Job is managed by Jenkins Job Builder.
+ + project-type: matrix + node: 'master' # Applies only to matrix flyweight task + axes: + - axis: + type: user-defined + name: cross_arch + values: '{obj:cross_arch}' + - axis: + type: slave + name: platforms + values: '{obj:platforms}' + + properties: + - build-discarder: + days-to-keep: 2 + + parameters: + - string: + name: 'mversion' + default: 'master' + description: 'The lttng-modules branch to build.' + - string: + name: 'mgitrepo' + default: 'git://git-mirror.internal.efficios.com/lttng/lttng-modules.git' + description: 'The lttng-modules git repository url.' + - string: + name: 'ktag' + 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: [] + + triggers: [] builders: - shell: - !include-raw-escape: scripts/common/coverity.sh + !include-raw-escape: scripts/lttng-modules/param-build.sh + + publishers: + - workspace-cleanup + +- job-template: + name: lttng-modules_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. + +Job is managed by Jenkins Job Builder.
+ + project-type: matrix + node: 'master' # Applies only to matrix flyweight task + axes: + - axis: + type: user-defined + name: cross_arch + values: '{obj:cross_arch}' + - axis: + type: slave + name: platforms + values: '{obj:platforms}' + + properties: + - build-discarder: + days-to-keep: 2 + + parameters: + - string: + name: 'mversion' + default: 'master' + description: 'The lttng-modules branch to build.' + - string: + name: 'mgitrepo' + default: 'git://git-mirror.internal.efficios.com/lttng/lttng-modules.git' + description: 'The lttng-modules git repository url.' + - string: + name: 'ktag' + 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: [] + + triggers: [] + + builders: + - shell: + !include-raw-escape: scripts/lttng-modules/param-build.sh publishers: - workspace-cleanup - job-template: - name: lttng-modules_{mversion}_cppcheck + name: lttng-modules_{mversion}_coverity defaults: lttng-modules + node: 'deb12-amd64' triggers: - pollscm: - cron: "@hourly" + cron: "@daily" - scm: - - git: - url: git://github.com/lttng/lttng-modules.git - browser: githubweb - browser-url: https://github.com/efficios/lttng-modules - branches: - - "{mversion}" + 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: | - rm -f cppcheck.xml - cppcheck --enable=all --xml --xml-version=2 $WORKSPACE 2> cppcheck.xml + git clone --depth=1 -b v6.1 --reference-if-able $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/kernel/stable/linux-stable.git src/linux + cd src/linux + make allyesconfig + 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: - archive: - artifacts: 'cppcheck.xml' + artifacts: 'analysis-results.tgz,cov-int/**' allow-empty: false - - cppcheck: - pattern: 'cppcheck.xml' - - email: - recipients: 'ci-notification@lists.lttng.org' - notify-every-unstable-build: true - send-to-individuals: false + - ircbot: *lttng-modules_publisher_ircbot_defaults + - workspace-cleanup ## Project - project: name: lttng-modules + github_user: lttng + github_name: lttng-modules + email_to: 'ci-notification@lists.lttng.org, cc:mathieu.desnoyers@efficios.com' mversion: - !include: jobs/inc/lttng-modules-versions.yaml.inc - kversion: - !include: jobs/inc/kernel-versions.yaml.inc + - stable-2.12 + - stable-2.13 + - master jobs: - - 'lttng-modules_{mversion}_{kversion}_{buildtype}': + +# Vanilla normal builds + - 'lttng-modules_{mversion}_{buildtype}-vanilla': + mversion: + - master + buildtype: build + parambuildtype: build + kverfloor: v4.4 + kverceil: '' + kverfilter: stable-head + - 'lttng-modules_{mversion}_fullbuild-vanilla': + mversion: + - master + buildtype: build + parambuildtype: build + kverfloor: v4.4 + kverceil: '' + kverfilter: none + + - 'lttng-modules_{mversion}_{buildtype}-vanilla': + mversion: + - stable-2.13 + buildtype: build + parambuildtype: build + kverfloor: v3.0 + kverceil: '' + kverfilter: stable-head + - 'lttng-modules_{mversion}_fullbuild-vanilla': + mversion: + - stable-2.13 + buildtype: build + parambuildtype: build + kverfloor: v3.0 + kverceil: '' + kverfilter: none + + - 'lttng-modules_{mversion}_{buildtype}-vanilla': + mversion: + - stable-2.12 + buildtype: build + parambuildtype: build + kverfloor: v3.0 + kverceil: v5.18-rc1 + kverfilter: stable-head + kverrc: false + - 'lttng-modules_{mversion}_fullbuild-vanilla': + mversion: + - stable-2.12 + buildtype: build + parambuildtype: build + kverfloor: v3.0 + kverceil: v5.18-rc1 + kverfilter: none + kverrc: false + +# EL normal builds + - 'lttng-modules_{mversion}_{buildtype}-{elversion}': + mversion: + - master + - stable-2.13 + - stable-2.12 + elversion: + - el8 + buildtype: build + parambuildtype: build + kverfloor: '' + kverceil: '' + kverfilter: stable-head + +# RT normal builds + - 'lttng-modules_{mversion}_build-rt': + mversion: master + kverfloor: v4.4.0-rt1-rebase + kverceil: '' + kverfilter: stable-head + +# SLES normal builders + - 'lttng-modules_{mversion}_{buildtype}-{slesversion}': + mversion: + - master + - stable-2.13 + - stable-2.12 + slesversion: + - sles15sp4 + buildtype: build + parambuildtype: build + kverfloor: '' + kverceil: '' + kverfilter: stable-head + +# Ubuntu normal builds + - 'lttng-modules_{mversion}_{buildtype}-{uversion}': + mversion: + - master + - stable-2.13 + uversion: + - focal + - jammy + - noble buildtype: build - arch: !!python/tuple [x86-32, x86-64] - #- 'lttng-modules_{mversion}_{kversion}_{buildtype}': - # buildtype: portbuild - # arch: !!python/tuple [armhf, powerpc] - - 'lttng-modules_{mversion}_cppcheck' + parambuildtype: build + kverfloor: '' + kverceil: '' + kverfilter: stable-head + + - 'lttng-modules_{mversion}_{buildtype}-{uversion}': + mversion: + - stable-2.12 + uversion: + - focal + - jammy + buildtype: build + parambuildtype: build + kverfloor: '' + kverceil: Ubuntu-hwe-5.18.0-0.0 + kverfilter: stable-head + +# Vanilla crossbuilds + - 'lttng-modules_{mversion}_{buildtype}-vanilla': + mversion: + - master + buildtype: crossbuild + parambuildtype: crossbuild + kverfloor: v4.4 + kverceil: '' + kverfilter: stable-head + + - 'lttng-modules_{mversion}_{buildtype}-vanilla': + mversion: + - stable-2.13 + buildtype: crossbuild + parambuildtype: crossbuild + kverfloor: v3.18 + kverceil: '' + kverfilter: stable-head + + - 'lttng-modules_{mversion}_{buildtype}-vanilla': + mversion: + - stable-2.12 + buildtype: crossbuild + parambuildtype: crossbuild + kverfloor: v3.18 + kverceil: v5.18-rc1 + kverfilter: stable-head + kverrc: false + +# Ubuntu cross builds + - 'lttng-modules_{mversion}_{buildtype}-{uversion}': + mversion: + - master + - stable-2.13 + uversion: + - focal + - jammy + - noble + buildtype: crossbuild + parambuildtype: crossbuild + kverfloor: '' + kverceil: '' + kverfilter: stable-head + + - 'lttng-modules_{mversion}_{buildtype}-{uversion}': + mversion: + - stable-2.12 + uversion: + - focal + - jammy + buildtype: crossbuild + parambuildtype: crossbuild + kverfloor: '' + kverceil: Ubuntu-hwe-5.18.0-0.0 + kverfilter: stable-head + +# Parametrized kernel and modules build jobs + - 'lttng-modules_PARAM_build': + platforms: !!python/tuple [deb12-amd64] + - 'lttng-modules_PARAM_crossbuild': + platforms: !!python/tuple [deb12-amd64] + cross_arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, riscv64] + +# Misc jobs + - 'lttng-modules_ALL_trigger-vanilla' - 'lttng-modules_{mversion}_coverity': mversion: master + +- project: + name: lttng-modules-review + jobs: + - 'dev_review_lttng-modules_{mversion}_build': + mversion: master + kverfloor: v4.4 + kverceil: '' + kverfilter: lts-head + - 'dev_review_lttng-modules_{mversion}_build': + mversion: stable-2.13 + kverfloor: v3.0 + kverceil: '' + kverfilter: lts-head + - 'dev_review_lttng-modules_{mversion}_build': + mversion: stable-2.12 + kverfloor: v3.0 + kverceil: v5.18 + kverfilter: lts-head + kverrc: false + - 'dev_review_lttng-modules_{mversion}_build-{elversion}': + mversion: + - master + - stable-2.13 + - stable-2.12 + elversion: + - el8 + buildtype: build + parambuildtype: build + kverfloor: '' + kverceil: '' + kverfilter: stable-head + - 'dev_review_lttng-modules_{mversion}_build-{slesversion}': + mversion: + - master + - stable-2.13 + - stable-2.12 + slesversion: + - sles15sp4 + buildtype: build + parambuildtype: build + kverfloor: '' + kverceil: '' + kverfilter: stable-head + +- project: + name: lttng-modules-dev-mjeanson + github_user: mjeanson + github_name: lttng-modules + email_to: '' + jobs: + - 'dev_mjeanson_lttng-modules_PARAM_build': + platforms: !!python/tuple [deb12-amd64] + - 'dev_mjeanson_lttng-modules_PARAM_crossbuild': + platforms: !!python/tuple [deb12-amd64] + cross_arch: !!python/tuple [armhf, arm64, powerpc, ppc64el] + - 'dev_mjeanson_lttng-modules_{mversion}_{buildtype}-vanilla': + mversion: + - master + buildtype: build + parambuildtype: build + kverfloor: v3.0 + kverceil: '' + kverfilter: stable-head + - 'dev_mjeanson_lttng-modules_{mversion}_{buildtype}-vanilla': + mversion: + - master + buildtype: crossbuild + parambuildtype: crossbuild + kverfloor: v4.4 + kverceil: '' + kverfilter: lts-head