Przeglądaj źródła

contrib/ci.inria.fr: update windows file

Nathalie Furmento 6 lat temu
rodzic
commit
409f559c2c
1 zmienionych plików z 133 dodań i 9 usunięć
  1. 133 9
      contrib/ci.inria.fr/Jenkinsfile-windows

+ 133 - 9
contrib/ci.inria.fr/Jenkinsfile-windows

@@ -1,9 +1,133 @@
-set PATH=%PATH%;C:\MinGW\msys\1.0\bin;c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE;c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
-sh -c "../../../StarPU/starpu-build.sh"
-set PATH=C:\Windows\SysWOW64;C:\Program Files (x86)\Mozilla Firefox;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\SysWOW64;C:\Program Files\Java\jre7\bin;
-set HWLOC=c:\StarPU\hwloc-win32-build-1.11.0
-
-cd starpu_install
-set STARPU_PATH=%cd%
-cd bin\msvc
-starpu_exec ../../share/doc/starpu/tutorial/hello_world_msvc.c
+#!groovy
+// StarPU --- Runtime system for heterogeneous multicore architectures.
+//
+// Copyright (C) 2018                                CNRS
+//
+// StarPU is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation; either version 2.1 of the License, or (at
+// your option) any later version.
+//
+// StarPU is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+//
+// See the GNU Lesser General Public License in COPYING.LGPL for more details.
+//
+
+def statusHasChanged = false
+
+pipeline
+{
+	agent none
+
+	// Trigger the build
+	triggers
+	{
+		// Poll gforge explicitly every hour
+		pollSCM('00 * * * *')
+	}
+
+	stages
+	{
+//		stage('Tarball')
+//		{
+//			steps
+//			{
+//				node('autotools')
+//				{
+//					checkout scm
+//					sh 'contrib/ci.inria.fr/job-0-tarball.sh'
+//					script
+//					{
+//					       env.tarballgz = sh (script: 'ls *.tar.gz', returnStdout: true).trim()
+//					}
+//					stash includes: "${env.tarballgz}", name: 'tarballgz'
+//					stash includes: "starpu.pdf", name: 'doc'
+//					stash includes: "starpu_dev.pdf", name: 'doc_dev'
+//					// Stash those scripts because they are not in make dist
+//					dir('contrib/ci.inria.fr')
+//					{
+//						stash includes: "job-1-check.sh", name: 'script-unix-check'
+//					}
+//					archiveArtifacts artifacts: "${env.tarballgz},starpu.pdf,starpu_dev.pdf", fingerprint: true, onlyIfSuccessful: true
+//					deleteDir()
+//
+//				}
+//			}
+//		}
+		stage('Check')
+		{
+			steps
+			{
+				script
+				{
+					labelToSelect = 'windows'
+					listOfNodeNames = jenkins.model.Jenkins.instance.nodes.collect
+					{
+						node -> node.getLabelString().contains(labelToSelect) ? node.name : null
+					}
+					listOfNodeNames.removeAll(Collections.singleton(null))
+
+					def p = listOfNodeNames.collectEntries
+					{
+						[ (it):
+						{
+							node(it)
+							{
+								dir('check-windows')
+								{
+//									unstash 'tarballgz'
+//									unstash 'script-unix-check'
+									sh 'echo test'
+//									deleteDir()
+								}
+							}
+						}
+					]}
+					parallel p;
+				}
+			}
+		}
+	}
+
+	post
+	{
+		// hooks are called in order: always, changed, aborted, failure, success, unstable
+		changed
+		{
+			echo "Build status has changed."
+			script
+			{
+
+				statusHasChanged = true
+			}
+		}
+		success
+		{
+			echo "Build success."
+			// email when changed to success
+			script
+			{
+				if (statusHasChanged)
+				{
+					emailext(body: '${DEFAULT_CONTENT}',
+						 subject: '${DEFAULT_SUBJECT}',
+						 replyTo: '$DEFAULT_REPLYTO',
+						 to: '$DEFAULT_RECIPIENTS',
+						 recipientProviders: [[$class: 'CulpritsRecipientProvider'],[$class: 'RequesterRecipientProvider']])
+				}
+			}
+		}
+		failure
+		{
+			echo "Build failure."
+			// always email on failure
+			emailext(body: '${DEFAULT_CONTENT}',
+				 subject: '${DEFAULT_SUBJECT}',
+				 replyTo: '$DEFAULT_REPLYTO',
+				 to: '$DEFAULT_RECIPIENTS',
+				 recipientProviders: [[$class: 'CulpritsRecipientProvider'],[$class: 'RequesterRecipientProvider']])
+		}
+	}
+}