jjb: Add windows jobs to liburcu
authorMichael Jeanson <mjeanson@efficios.com>
Tue, 11 Apr 2017 18:51:44 +0000 (14:51 -0400)
committerMichael Jeanson <mjeanson@efficios.com>
Tue, 11 Apr 2017 18:51:44 +0000 (14:51 -0400)
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
jobs/liburcu.yaml
scripts/common/cygwin-prefix [new file with mode: 0644]
scripts/common/cygwin-shebang [new file with mode: 0644]
scripts/common/cygwin64-shebang [new file with mode: 0644]
scripts/common/msys32-shebang [new file with mode: 0644]
scripts/common/msys64-shebang [new file with mode: 0644]

index c1efef56f40c9e5a3d505575bd15b0d3bb01276e..a81c89908c1c7e7a2ac2c6008863431b7c25207f 100644 (file)
     project-type: freestyle
 
     wrappers:
-      - workspace-cleanup
+      - ansicolor
+      - timeout:
+          timeout: 90
+          fail: true
+          type: absolute
       - timestamps
-      - ansicolor:
-          colormap: xterm
+      - workspace-cleanup:
+          clean-if:
+            - failure: false
 
     scm:
       - git:
@@ -42,6 +47,7 @@
             - origin/{version}
           basedir: src/liburcu
           skip-tag: true
+          git-tool: jgit
 
     triggers:
       - pollscm:
           url: https://github.com/{github_user}/{github_name}
 
 
-## Templates
-- job-template:
-    name: liburcu_{version}_{buildtype}
-    defaults: liburcu
-
+## Anchors
+- liburcu_build_axes_defaults: &liburcu_build_axes_defaults
+    name: 'liburcu_build_axes_defaults'
     project-type: matrix
     node: 'master' # Applies only to matrix flyweight task
     axes:
       - axis:
          type: user-defined
          name: conf
-         values:
-          - std
-          - static
-          - tls_fallback
-          - debug-rcu
+         values: '{obj:conf}'
       - axis:
          type: user-defined
          name: build
          values: '{obj:build}'
 
+- liburcu_build_builders_defaults: &liburcu_build_builders_defaults
+    name: 'liburcu_build_builders_defaults'
     builders:
       - shell:
          !include-raw-escape: scripts/liburcu/build.sh
 
-    # TODO: Scan for open tasks
+- liburcu_build_builders_win: &liburcu_build_builders_win
+    name: 'liburcu_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/liburcu/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/liburcu/build.sh
+      - conditional-step:
+          condition-kind: strings-match
+          on-evaluation-failure: run
+          condition-string1: '${{arch}}'
+          condition-string2: 'msys32'
+          steps:
+            - inject:
+               properties-content: 'MSYSTEM=MINGW32'
+            - shell:
+               !include-raw-escape:
+                 - scripts/common/msys32-shebang
+                 - scripts/common/cygwin-prefix
+                 - scripts/liburcu/build.sh
+      - conditional-step:
+          condition-kind: strings-match
+          on-evaluation-failure: run
+          condition-string1: '${{arch}}'
+          condition-string2: 'msys64'
+          steps:
+            - inject:
+               properties-content: 'MSYSTEM=MINGW64'
+            - shell:
+               !include-raw-escape:
+                 - scripts/common/msys64-shebang
+                 - scripts/common/cygwin-prefix
+                 - scripts/liburcu/build.sh
+
+- liburcu_build_publishers_defaults: &liburcu_build_publishers_defaults
+    name: 'liburcu_build_publishers_defaults'
     publishers:
       - warnings:
           console-log-parsers:
           channels:
             - name: '#lttng'
 
+
+## Templates
+- job-template:
+    name: liburcu_{version}_{buildtype}
+    defaults: liburcu
+
+    <<: *liburcu_build_axes_defaults
+    <<: *liburcu_build_builders_defaults
+    <<: *liburcu_build_publishers_defaults
+
+- job-template:
+    name: liburcu_{version}_winbuild
+    defaults: liburcu
+
+    <<: *liburcu_build_axes_defaults
+    <<: *liburcu_build_builders_win
+    <<: *liburcu_build_publishers_defaults
+
 - job-template:
     name: liburcu_{version}_cppcheck
     defaults: liburcu
           cron: "@daily"
 
     wrappers:
-      - workspace-cleanup
+      - ansicolor
+      - timeout:
+          timeout: 60
+          fail: true
+          type: absolute
       - timestamps
-      - ansicolor:
-          colormap: xterm
+      - workspace-cleanup:
+          clean-if:
+            - failure: false
       - credentials-binding:
           - username-password-separated:
               credential-id: liburcu_coverity_token
     github_user: urcu
     github_name: userspace-rcu
     version:
-      !include: jobs/inc/liburcu-versions.yaml.inc
+      - stable-0.8
+      - stable-0.9
+      - master
     jobs:
       - 'liburcu_{version}_{buildtype}':
           buildtype: build
           arch: !!python/tuple [x86-32, x86-64]
           build: !!python/tuple [std, oot, dist]
+          conf: !!python/tuple [std, static, tls_fallback, debug-rcu]
       - 'liburcu_{version}_{buildtype}':
           buildtype: portbuild
           arch: !!python/tuple [armhf, arm64, powerpc, ppc64el]
           build: !!python/tuple [std]
+          conf: !!python/tuple [std, static, tls_fallback, debug-rcu]
       - 'liburcu_{version}_{buildtype}':
           buildtype: solarisbuild
           arch: !!python/tuple [solaris10, solaris11]
           build: !!python/tuple [std]
+          conf: !!python/tuple [std, static, tls_fallback, debug-rcu]
           version: # Solaris support was introduced in 0.9
             - master
             - stable-0.9
           buildtype: macosxbuild
           arch: !!python/tuple [macosx]
           build: !!python/tuple [std]
+          conf: !!python/tuple [std, static, tls_fallback, debug-rcu]
+          version:
+            - master
+            - stable-0.9
+      - 'liburcu_{version}_winbuild':
+          arch: !!python/tuple [cygwin, cygwin64]
+          build: !!python/tuple [std]
+          conf: !!python/tuple [std]
           version:
             - master
             - stable-0.9
diff --git a/scripts/common/cygwin-prefix b/scripts/common/cygwin-prefix
new file mode 100644 (file)
index 0000000..5e33e88
--- /dev/null
@@ -0,0 +1,5 @@
+set -exu
+
+WORKSPACE="$(cygpath "$WORKSPACE")"
+
+cd "$WORKSPACE"
diff --git a/scripts/common/cygwin-shebang b/scripts/common/cygwin-shebang
new file mode 100644 (file)
index 0000000..950a169
--- /dev/null
@@ -0,0 +1 @@
+#!c:\cygwin\bin\bash --login
diff --git a/scripts/common/cygwin64-shebang b/scripts/common/cygwin64-shebang
new file mode 100644 (file)
index 0000000..74e9414
--- /dev/null
@@ -0,0 +1 @@
+#!c:\cygwin64\bin\bash --login
diff --git a/scripts/common/msys32-shebang b/scripts/common/msys32-shebang
new file mode 100644 (file)
index 0000000..f4dbe07
--- /dev/null
@@ -0,0 +1 @@
+#!c:\msys32\usr\bin\bash --login
diff --git a/scripts/common/msys64-shebang b/scripts/common/msys64-shebang
new file mode 100644 (file)
index 0000000..ad43c2e
--- /dev/null
@@ -0,0 +1 @@
+#!c:\msys64\usr\bin\bash --login
This page took 0.026849 seconds and 4 git commands to generate.