jjb: Update babeltrace jobs
[lttng-ci.git] / jobs / babeltrace.yaml
index 172b7cf50f4f254ae0293108a83009291d96def2..09ddfeb9efe38b4a5a6972ca3b40482191ff469a 100644 (file)
 
     project-type: freestyle
 
-    logrotate:
-        numToKeep: 2
-
     wrappers:
-      - workspace-cleanup
+      - ansicolor
+      - timeout:
+          timeout: 90
+          fail: true
+          type: absolute
       - timestamps
-      - ansicolor:
-          colormap: xterm
+      - workspace-cleanup:
+          clean-if:
+            - failure: false
 
     scm:
       - git:
           browser-url: https://github.com/{github_user}/{github_name}
           branches:
             - origin/{version}
+          basedir: src/babeltrace
+          skip-tag: true
 
     triggers:
       - pollscm:
           cron: "@hourly"
 
     properties:
+      - inject:
+          properties-content: |
+            PROJECT_NAME=babeltrace
+      - build-discarder:
+          num-to-keep: 2
       - github:
           url: https://github.com/{github_user}/{github_name}
 
 
-## Templates
-
-- babeltrace_version_buildtype_anchor: &babeltrace_version_buildtype_anchor
-    name: 'babeltrace_version_buildtype_anchor'
-    defaults: babeltrace
+## Anchors
+- babeltrace_build_axes_defaults: &babeltrace_build_axes_defaults
+    name: 'babeltrace_build_axes_defaults'
+    project-type: matrix
+    node: 'master' # Applies only to matrix flyweight task
+    axes:
+      - axis:
+         type: slave
+         name: arch
+         values: '{obj:arch}'
+      - axis:
+         type: user-defined
+         name: conf
+         values: '{obj:conf}'
+      - axis:
+         type: user-defined
+         name: build
+         values: '{obj:build}'
 
+- babeltrace_build_axes_cc: &babeltrace_build_axes_cc
+    name: 'babeltrace_build_axes_cc'
     project-type: matrix
     node: 'master' # Applies only to matrix flyweight task
     axes:
          type: user-defined
          name: build
          values: '{obj:build}'
+      - axis:
+         type: user-defined
+         name: cc
+         values: '{obj:cc}'
 
+- babeltrace_build_builders_defaults: &babeltrace_build_builders_defaults
+    name: 'babeltrace_build_builders_defaults'
     builders:
       - shell:
          !include-raw-escape: scripts/babeltrace/build.sh
 
-- job-template:
-    name: babeltrace_{version}_{buildtype}
-    <<: *babeltrace_version_buildtype_anchor
-    # TODO: Scan for open tasks
+- babeltrace_build_builders_win: &babeltrace_build_builders_win
+    name: 'babeltrace_build_builders_win'
+    builders:
+      - conditional-step:
+          condition-kind: strings-match
+          on-evaluation-failure: run
+          condition-string1: '${{arch}}'
+          condition-string2: 'cygwin'
+          steps:
+            - shell:
+               !include-raw-escape:
+                 - scripts/common/cygwin-shebang
+                 - scripts/common/cygwin-prefix
+                 - scripts/babeltrace/build.sh
+      - conditional-step:
+          condition-kind: strings-match
+          on-evaluation-failure: run
+          condition-string1: '${{arch}}'
+          condition-string2: 'cygwin64'
+          steps:
+            - shell:
+               !include-raw-escape:
+                 - scripts/common/cygwin64-shebang
+                 - scripts/common/cygwin-prefix
+                 - scripts/babeltrace/build.sh
+      - conditional-step:
+          condition-kind: strings-match
+          on-evaluation-failure: run
+          condition-string1: '${{arch}}'
+          condition-string2: 'msys2-mingw32'
+          steps:
+            - inject:
+               properties-content: 'MSYSTEM=MINGW32'
+            - shell:
+               !include-raw-escape:
+                 - scripts/common/msys2-shebang
+                 - scripts/common/cygwin-prefix
+                 - scripts/babeltrace/build.sh
+      - conditional-step:
+          condition-kind: strings-match
+          on-evaluation-failure: run
+          condition-string1: '${{arch}}'
+          condition-string2: 'msys2-mingw64'
+          steps:
+            - inject:
+               properties-content: 'MSYSTEM=MINGW64'
+            - shell:
+               !include-raw-escape:
+                 - scripts/common/msys2-shebang
+                 - scripts/common/cygwin-prefix
+                 - scripts/babeltrace/build.sh
+
+
+- babeltrace_build_publishers_dev: &babeltrace_build_publishers_dev
+    name: 'babeltrace_build_publishers_dev'
     publishers:
       - tap:
-          results: 'tests/**/*.log'
+          results: 'tap/**/*.log'
           failed-tests-mark-build-as-failure: true
           todo-is-failure: false
       - warnings:
               total-normal: 0
               total-low: 0
       - archive:
-          artifacts: 'build/**'
+          artifacts: 'tap/**'
           allow-empty: false
-      - ircbot:
-          strategy: new-failure-and-fixed
-          matrix-notifier: only-parent
-          channels:
-            - name: '#lttng'
-
-- job-template:
-    name: dev_{user}_babeltrace_{version}_{buildtype}
-    <<: *babeltrace_version_buildtype_anchor
+      - email-ext:
+          recipients: '{obj:email_to}'
+          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
+
+
+- babeltrace_build_publishers_prod: &babeltrace_build_publishers_prod
+    name: 'babeltrace_build_publishers_prod'
     publishers:
       - tap:
-          results: 'tests/**/*.log'
+          results: 'tap/**/*.log'
           failed-tests-mark-build-as-failure: true
           todo-is-failure: false
       - warnings:
               total-high: 0
               total-normal: 0
               total-low: 0
+      - archive:
+          artifacts: 'build/**,tap/**'
+          allow-empty: false
+      - email-ext:
+          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
+
+- babeltrace_build_publishers_gerrit: &babeltrace_build_publishers_gerrit
+    name: 'babeltrace_build_publishers_gerrit'
+    publishers:
+      - tap:
+          results: 'tap/**/*.log'
+          failed-tests-mark-build-as-failure: true
+          todo-is-failure: false
+      - warnings:
+          console-log-parsers:
+            - 'GNU Make + GNU C Compiler (gcc)'
+          total-thresholds:
+            unstable:
+              total-all: 0
+              total-high: 0
+              total-normal: 0
+              total-low: 0
+      - archive:
+          artifacts: 'build/**,tap/**'
+          allow-empty: false
+
+
+## Templates
+
+- job-template:
+    name: babeltrace_{version}_{buildtype}
+    defaults: babeltrace
+
+    <<: *babeltrace_build_axes_defaults
+    <<: *babeltrace_build_builders_defaults
+    <<: *babeltrace_build_publishers_prod
+
+- job-template:
+    name: babeltrace_{version}_{cctype}
+    defaults: babeltrace
+
+    <<: *babeltrace_build_axes_cc
+    <<: *babeltrace_build_builders_defaults
+    <<: *babeltrace_build_publishers_prod
+
+- job-template:
+    name: babeltrace_{version}_winbuild
+    defaults: babeltrace
+
+    # Use jgit on windows to work around path too long error
+    scm:
+      - git:
+          url: git://github.com/{github_user}/{github_name}.git
+          browser: githubweb
+          browser-url: https://github.com/{github_user}/{github_name}
+          branches:
+            - origin/{version}
+          basedir: src/babeltrace
+          skip-tag: true
+          git-tool: jgit
+
+    <<: *babeltrace_build_axes_defaults
+    <<: *babeltrace_build_builders_win
+    <<: *babeltrace_build_publishers_prod
+
+- job-template:
+    name: dev_{user}_babeltrace_{version}_{buildtype}
+    defaults: babeltrace
+
+    <<: *babeltrace_build_axes_defaults
+    <<: *babeltrace_build_builders_defaults
+    <<: *babeltrace_build_publishers_dev
+
+- job-template:
+    name: dev_gerrit_babeltrace_{buildtype}
+    defaults: babeltrace
+    concurrent: true
+
+    scm:
+      - git:
+          url: https://review.lttng.org/babeltrace
+          refspec: 'refs/changes/*:refs/changes/*'
+          branches:
+            - '$GERRIT_REFSPEC'
+          basedir: src/babeltrace
+          skip-tag: true
+
+    triggers:
+      - gerrit:
+          trigger-on:
+            - comment-added-event:
+                approval-category: 'CI-Build'
+                approval-value: 1
+          projects:
+            - project-compare-type: 'PLAIN'
+              project-pattern: 'babeltrace'
+              branches:
+                - branch-compare-type: 'ANT'
+                  branch-pattern: '**'
+          trigger-for-unreviewed-patches: true
+
+    project-type: matrix
+    node: 'master' # Applies only to matrix flyweight task
+    execution-strategy:
+      combination-filter: |
+        (build=="std" && conf=="std") || (arch=="amd64")
+    axes:
+      - axis:
+         type: slave
+         name: arch
+         values: '{obj:arch}'
+      - axis:
+         type: user-defined
+         name: conf
+         values: '{obj:conf}'
+      - axis:
+         type: user-defined
+         name: build
+         values: '{obj:build}'
+
+    <<: *babeltrace_build_builders_defaults
+    <<: *babeltrace_build_publishers_gerrit
+
+    properties:
+      - inject:
+          properties-content: |
+            PROJECT_NAME=babeltrace
+      - build-discarder:
+          days-to-keep: 2
+      - github:
+          url: https://github.com/{github_user}/{github_name}
 
 - job-template:
     name: babeltrace_{version}_cppcheck
 
     builders:
       - shell: |
-          rm -f babeltrace-cppcheck.xml
-          cppcheck --enable=all --xml --xml-version=2 $WORKSPACE 2> babeltrace-cppcheck.xml
+          rm -f cppcheck-result.xml
+          cppcheck --enable=all --xml --xml-version=2 $WORKSPACE/src/babeltrace 2> cppcheck-result.xml
 
     publishers:
       - archive:
-          artifacts: 'babeltrace-cppcheck.xml'
+          artifacts: 'cppcheck-result.xml'
           allow-empty: false
       - cppcheck:
-          pattern: 'babeltrace-cppcheck.xml'
-      - email:
-          recipients: 'ci-notification@lists.lttng.org'
-          notify-every-unstable-build: true
-          send-to-individuals: false
+          pattern: 'cppcheck-result.xml'
 
 - job-template:
     name: babeltrace_{version}_scan-build
     defaults: babeltrace
-    node: 'x86-64'
+    node: 'amd64'
 
     triggers:
       - pollscm:
 
     builders:
       - shell:
-          !include-raw-escape: scripts/babeltrace/scan-build.sh
+          !include-raw-escape: scripts/common/scan-build.sh
 
     publishers:
       - html-publisher:
 - job-template:
     name: babeltrace_{version}_coverity
     defaults: babeltrace
-    node: 'x86-64'
+    node: 'amd64'
 
     triggers:
       - pollscm:
 
     publishers:
       - workspace-cleanup
+      - archive:
+          artifacts: 'analysis-results.tgz,cov-int/**'
+          allow-empty: false
 
 - job-template:
     name: babeltrace_{version}_pylint
     defaults: babeltrace
-    node: 'x86-64'
+    node: 'amd64'
 
     scm: []
 
 
     builders:
        - copyartifact:
-           project: babeltrace_{version}_build/arch=x86-64,build=std,conf=python-bindings
+           project: babeltrace_{version}_build/arch=amd64,build=std,conf=python-bindings
            which-build: last-successful
-           stable: true
+           stable: false
            filter: 'build/**'
            target: 'deps/babeltrace'
        - shell:
             min: 10
             max: 999
             unstable: 999
-      - email:
-          recipients: 'ci-notification@lists.lttng.org'
-          notify-every-unstable-build: true
-          send-to-individuals: false
+      - email-ext:
+          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
 
 # Use - in version number since yaml anchor do not support dot
 - babeltrace_version_glib-2-22-5_anchor: &babeltrace_version_glib-2-22-5_anchor
     name: 'babeltrace_version_glib_anchor'
     defaults: babeltrace
-    node: 'x86-64'
+    node: 'amd64'
 
     builders:
       - inject:
           properties-content: |
             LD_LIBRARY_PATH=$WORKSPACE/glib-2.22.5/BUILD_RESULT/lib
             PKG_CONFIG_PATH=$WORKSPACE/glib-2.22.5/BUILD_RESULT/lib/pkgconfig
-            arch=x86-64
+            arch=amd64
             conf=std
             build=std
       - shell: |
       - pollscm:
           cron: "@daily"
     <<: *babeltrace_version_glib-2-22-5_anchor
+    publishers:
+      - archive:
+          artifacts: 'tap/**'
+          allow-empty: false
+      - email-ext:
+          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
 
 - job-template:
     name: dev_{user}_babeltrace_{version}_glib-2.22.5
     <<: *babeltrace_version_glib-2-22-5_anchor
 
+    publishers:
+      - email-ext:
+          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
+
 ## Project
 - project:
-    name: babeltrace
+    name: babeltrace1
     github_user: efficios
     github_name: babeltrace
+    email_to: 'ci-notification@lists.lttng.org, cc:jgalar@efficios.com'
     version:
-      !include: jobs/inc/babeltrace-versions.yaml.inc
+      - stable-1.5
     jobs:
       - 'babeltrace_{version}_{buildtype}':
           buildtype: build
-          arch: !!python/tuple [x86-32, x86-64]
-          build: !!python/tuple [std, oot, dist]
+          arch: !!python/tuple [amd64]
+          build: !!python/tuple [std, oot, dist, oot-dist]
           conf: !!python/tuple [std, static, python-bindings]
-      - 'babeltrace_{version}_{buildtype}':
-          buildtype: clangbuild
-          arch: !!python/tuple [x86-32, x86-64]
-          build: !!python/tuple [clang]
-          conf: !!python/tuple [std, static]
       - 'babeltrace_{version}_{buildtype}':
           buildtype: portbuild
-          arch: !!python/tuple [armhf, arm64, powerpc, ppc64el]
+          arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386]
           build: !!python/tuple [std]
-          conf: !!python/tuple [std, static, python-bindings]
+          conf: !!python/tuple [std, python-bindings]
+      - 'babeltrace_{version}_{buildtype}':
+          buildtype: slesbuild
+          arch: !!python/tuple [sles12sp2]
+          build: !!python/tuple [std]
+          conf: !!python/tuple [std]
+          version: # // support 1.3 on SLES12
+            - stable-1.3
+            - stable-1.5
       - 'babeltrace_{version}_{buildtype}':
           buildtype: solarisbuild
-          arch: !!python/tuple [solaris10, solaris11]
+          arch: !!python/tuple [sol10-i386, sol11-i386]
           build: !!python/tuple [std]
           conf: !!python/tuple [std, static]
-          version:
-            - stable-1.3
-            - master
       - 'babeltrace_{version}_{buildtype}':
           buildtype: macosxbuild
           arch: !!python/tuple [macosx]
           build: !!python/tuple [std]
+          conf: !!python/tuple [std, python-bindings]
+      - 'babeltrace_{version}_{cctype}':
+          cctype: clangbuild
+          arch: !!python/tuple [amd64]
+          build: !!python/tuple [std]
           conf: !!python/tuple [std, static]
-          version:
-            - master
+          cc: !!python/tuple [clang-3.9, clang-4.0, clang-6.0, clang-7]
+      - 'babeltrace_{version}_winbuild':
+          arch: !!python/tuple [cygwin, cygwin64]
+          build: !!python/tuple [std]
+          conf: !!python/tuple [std]
+      - 'babeltrace_{version}_cppcheck'
+      - 'babeltrace_{version}_scan-build'
+      - 'babeltrace_{version}_pylint'
+
+- project:
+    name: babeltrace2
+    github_user: efficios
+    github_name: babeltrace
+    email_to: 'ci-notification@lists.lttng.org, cc:jgalar@efficios.com'
+    version:
+      - stable-2.0
+      - master
+    jobs:
+      - 'babeltrace_{version}_{buildtype}':
+          buildtype: build
+          arch: !!python/tuple [amd64]
+          build: !!python/tuple [std, oot, dist, oot-dist]
+          conf: !!python/tuple [std, static, prod, min]
+      - 'babeltrace_{version}_{buildtype}':
+          buildtype: portbuild
+          arch: !!python/tuple [armhf, arm64, powerpc, ppc64el, i386]
+          build: !!python/tuple [std]
+          conf: !!python/tuple [std, prod]
+      - 'babeltrace_{version}_{buildtype}':
+          buildtype: slesbuild
+          arch: !!python/tuple [sles12sp2]
+          build: !!python/tuple [std]
+          conf: !!python/tuple [std, prod]
+      - 'babeltrace_{version}_{buildtype}':
+          buildtype: macosxbuild
+          arch: !!python/tuple [macosx]
+          build: !!python/tuple [std]
+          conf: !!python/tuple [std, prod]
+      - 'babeltrace_{version}_{cctype}':
+          cctype: clangbuild
+          arch: !!python/tuple [amd64]
+          build: !!python/tuple [std]
+          conf: !!python/tuple [std, static, prod]
+          cc: !!python/tuple [clang-3.9, clang-4.0, clang-6.0, clang-7]
+      - 'babeltrace_{version}_winbuild':
+          arch: !!python/tuple [cygwin, cygwin64, msys2-mingw32, msys2-mingw64]
+          build: !!python/tuple [std]
+          conf: !!python/tuple [std]
       - 'babeltrace_{version}_cppcheck'
       - 'babeltrace_{version}_scan-build'
       - 'babeltrace_{version}_pylint'
           version: master
       - 'babeltrace_{version}_glib-2.22.5':
           version: master
+
+- project:
+    name: babeltrace-jgalar-staging
+    user: jgalar
+    github_user: jgalar
+    github_name: babeltrace
+    email_to: "jgalar@efficios.com"
+    version:
+      - stable-1.3-staging
+      - stable-1.5-staging
+      - stable-2.0-staging
+      - master-staging
+    jobs:
       - 'dev_{user}_babeltrace_{version}_glib-2.22.5':
-          user: jgalar
-          github_user: jgalar
-          github_name: babeltrace
           version:
             - master-staging
       - 'dev_{user}_babeltrace_{version}_{buildtype}':
-          user: jgalar
-          github_user: jgalar
-          github_name: babeltrace
           buildtype: build
-          version:
-            - master-staging
-            - stable-1.2-staging
-            - stable-1.3-staging
-          arch: !!python/tuple [x86-32, x86-64]
-          build: !!python/tuple [std, oot, dist]
+          arch: !!python/tuple [amd64]
+          build: !!python/tuple [std, oot, dist, oot-dist]
           conf: !!python/tuple [std, static, python-bindings]
+      - 'dev_{user}_babeltrace_{version}_{buildtype}':
+          buildtype: macosxbuild
+          version: # macOS support was introduced in 1.4
+            - stable-1.5-staging
+            - stable-2.0-staging
+            - master-staging
+          arch: !!python/tuple [macosx]
+          build: !!python/tuple [std]
+          conf: !!python/tuple [std]
+
 
+- project:
+    name: gerrit-babeltrace
+    github_user: efficios
+    github_name: babeltrace
+    jobs:
+      - 'dev_gerrit_babeltrace_{buildtype}':
+          buildtype: build
+          arch: !!python/tuple [amd64, armhf, arm64, powerpc, ppc64el, i386]
+          build: !!python/tuple [std, oot, dist, oot-dist]
+          conf: !!python/tuple [std, static, prod, min]
This page took 0.03117 seconds and 4 git commands to generate.