[commit: ghc] wip/jenkins: Move to scripted pipeline (3519604)
git at git.haskell.org
git at git.haskell.org
Sat Jun 17 13:51:35 UTC 2017
Repository : ssh://git@git.haskell.org/ghc
On branch : wip/jenkins
Link : http://ghc.haskell.org/trac/ghc/changeset/3519604f2fb3b6ccca4176fca3940ab068bd94a2/ghc
>---------------------------------------------------------------
commit 3519604f2fb3b6ccca4176fca3940ab068bd94a2
Author: Ben Gamari <ben at smart-cactus.org>
Date: Wed May 17 20:52:58 2017 -0400
Move to scripted pipeline
>---------------------------------------------------------------
3519604f2fb3b6ccca4176fca3940ab068bd94a2
Jenkinsfile | 83 ++++++++++++++++++++++++++++++-------------------------------
1 file changed, 41 insertions(+), 42 deletions(-)
diff --git a/Jenkinsfile b/Jenkinsfile
index 24c2949..ee92071 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,55 +1,54 @@
+#!groovy
+
+properties(
+ [
+ parameters(
+ [
+ booleanParam(name: 'build_docs', defaultValue: false, description: 'build and upload documentation'),
+ booleanParam(name: 'nightly', defaultValue: false, description: 'are we building a nightly?')
+ ])
+ ])
+
def buildGhc() {
- steps {
+ stage('Build') {
sh 'git submodule update --init --recursive'
def speed = 'NORMAL'
if (params.nightly) {
speed = 'SLOW'
}
- writeFile 'mk/build.mk'
- '''
- Validating=YES
- ValidateSpeed=${speed}
- ValidateHpc=NO
- BUILD_DPH=NO
- '''
- sh '''
- ./boot
- ./configure --enable-tarballs-autodownload
- make THREADS=${params.threads} test
- '''
- }
-}
-
-pipeline {
- agent any
- parameters {
- booleanParam(name: 'build_docs', defaultValue: false, description: 'build and upload documentation')
- string(name: 'threads', defaultValue: '2', description: 'available parallelism')
- booleanParam(name: 'nightly', defaultValue: false, description: 'are we building a nightly?')
+ writeFile(
+ file: 'mk/build.mk',
+ text: """
+ Validating=YES
+ ValidateSpeed=${speed}
+ ValidateHpc=NO
+ BUILD_DPH=NO
+ """)
+ sh """
+ ./boot
+ ./configure --enable-tarballs-autodownload
+ make -j${env.THREADS}
+ """
}
- stages {
- stage('Build') {
- steps {
- buildGhc()
- }
- }
-
- stage('Install testsuite dependencies') {
- when { environment expression { return params.nightly } }
- steps {
- sh 'cabal install --with-compiler=`pwd`/inplace/bin/ghc-stage2 --package-db=`pwd`/inplace/lib/package.conf.d mtl parallel parsec primitive QuickCheck random regex-compat syb stm utf8-string vector'
- }
+ stage('Install testsuite dependencies') {
+ if (params.nightly) {
+ def pkgs = ['mtl', 'parallel', 'parsec', 'primitive', 'QuickCheck',
+ 'random', 'regex-compat', 'syb', 'stm', 'utf8-string',
+ 'vector']
+ sh "cabal install -j${env.THREADS} --with-compiler=`pwd`/inplace/bin/ghc-stage2 --package-db=`pwd`/inplace/lib/package.conf.d ${pkgs.join(' ')}"
}
+ }
- stage('Normal testsuite run') {
- def target = 'test'
- if (params.nightly) {
- target = 'slowtest'
- }
- steps {
- sh 'make THREADS=${params.threads} ${target}'
- }
+ stage('Normal testsuite run') {
+ def target = 'test'
+ if (params.nightly) {
+ target = 'slowtest'
}
+ sh "make THREADS=${env.THREADS} ${target}"
}
}
+
+node {
+ buildGhc()
+}
More information about the ghc-commits
mailing list