Merge pull request #10 from frdeso/fix_missing_files
[lttng-ci.git] / jobs / lttng-modules.yaml
index f834f2331fc5b5b323157ae3c9e19e711ddc8ded..80897d82d41174518de7bfe185f9866f0eff3f56 100644 (file)
@@ -9,12 +9,6 @@
 
     project-type: freestyle
 
-    logrotate:
-        daysToKeep: -1
-        numToKeep: 2
-        artifactDaysToKeep: -1
-        artifactNumToKeep: -1
-
     wrappers:
       - workspace-cleanup
       - timestamps
 
     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
           skip-tag: true
           fastpoll: true
-          basedir: lttng-modules
+          basedir: src/lttng-modules
 
     triggers:
       - pollscm:
-          cron: "@daily"
+          cron: "@hourly"
 
     properties:
+      - build-discarder:
+          num-to-keep: 2
       - 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
       - copyartifact:
           project: kernel_{kversion}_{buildtype}/arch=$arch
           which-build: last-successful
-          stable: true
+          stable: false
           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
+          git clone --depth=1 -b "v{kversion}" --reference $HOME/gitcache/linux-stable.git/ git://git-mirror.internal.efficios.com/git/linux-all.git src/linux
       - shell:
          !include-raw-escape: scripts/lttng-modules/build.sh
 
       - workspace-cleanup
 
 - job-template:
-    name: lttng-modules_{mversion}_coverity
+    name: lttng-modules_{mversion}_{buildtype}-vanilla
     defaults: lttng-modules
-    node: 'x86-64'
+    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:
-      - pollscm:
-          cron: "@daily"
+
+    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/efficios/lttng-modules
+          browser-url: https://github.com/lttng/lttng-modules
           branches:
-            - "{mversion}"
+            - "${{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
               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
 
       - pollscm:
           cron: "@daily"
 
-    scm:
-      - git:
-          url: git://github.com/lttng/lttng-modules.git
-          browser: githubweb
-          browser-url: https://github.com/efficios/lttng-modules
-          branches:
-            - "{mversion}"
-
     builders:
       - shell: |
           rm -f cppcheck.xml
-          cppcheck --enable=all --xml --xml-version=2 $WORKSPACE 2> cppcheck.xml
+          cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/lttng-modules 2> cppcheck.xml
 
     publishers:
       - archive:
           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'
+
 
 ## Project
 - project:
     name: lttng-modules
-    mversion:
-      !include: jobs/inc/lttng-modules-versions.yaml.inc
-    kversion:
-      !include: jobs/inc/kernel-versions.yaml.inc
+    github_user: lttng
+    github_name: lttng-modules
     jobs:
-      - 'lttng-modules_{mversion}_{kversion}_{buildtype}':
+      - 'lttng-modules_{mversion}_{buildtype}-vanilla':
+          mversion:
+            - stable-2.9
+            - master
           buildtype: build
+          kverfloor: v2.6.36
+          kverceil: ''
+          kverfilter: none
+      - 'lttng-modules_{mversion}_{buildtype}-vanilla':
+          mversion: stable-2.7
+          buildtype: build
+          kverfloor: v2.6.36
+          kverceil: v4.8-rc0
+          kverfilter: none
+      - 'lttng-modules_{mversion}_{buildtype}-vanilla':
+          mversion: stable-2.8
+          buildtype: build
+          kverfloor: v2.6.36
+          kverceil: v4.10-rc0
+          kverfilter: none
+      - 'lttng-modules_{mversion}_build-rt':
+          mversion: master
+      - 'lttng-modules_{mversion}_build-{uversion}':
+          mversion:
+            - stable-2.8
+            - stable-2.9
+            - master
+          uversion:
+            - trusty
+            - xenial
+      - 'lttng-modules_{mversion}_{buildtype}-vanilla':
+          mversion:
+            - stable-2.9
+            - master
+          buildtype: crossbuild
+          kverfloor: v3.16
+          kverceil: ''
+          kverfilter: stable-head
+      - 'lttng-modules_{mversion}_{buildtype}-vanilla':
+          mversion: stable-2.7
+          buildtype: crossbuild
+          kverfloor: v3.16
+          kverceil: v4.8-rc0
+          kverfilter: stable-head
+      - 'lttng-modules_{mversion}_{buildtype}-vanilla':
+          mversion: stable-2.8
+          buildtype: crossbuild
+          kverfloor: v3.16
+          kverceil: v4.10-rc0
+          kverfilter: stable-head
+      - '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_{mversion}_cppcheck'
+      - 'lttng-modules_VERSION_param-crossbuild':
+          cross_arch: !!python/tuple [armhf, arm64, powerpc, ppc64el]
+      - 'lttng-modules_{mversion}_cppcheck':
+          mversion:
+            - stable-2.8
+            - stable-2.9
+            - master
+      - 'lttng-modules_{mversion}_sloccount':
+          mversion: master
       - 'lttng-modules_{mversion}_coverity':
           mversion: master
This page took 0.040946 seconds and 4 git commands to generate.