forked from alphagov/gds-sso
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
52 lines (45 loc) · 1.01 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/env groovy
library("govuk")
def rubyVersions = [
"2.4",
"2.5",
]
def gemfiles = [
"rails_4",
"rails_5",
]
node {
govuk.buildProject(
beforeTest: {
stage("Trap signon processes") {
sh('trap "./stop_signon.sh" EXIT')
}
stage("Remove lock files") {
sh("rm -f Gemfile.lock")
sh("rm -f gemfiles/*.gemfile.lock")
}
stage("Clean up git") {
sh("git clean -fxde /tmp")
}
stage("Start signon") {
sh("./start_signon.sh")
}
},
overrideTestTask: {
for (rubyVersion in rubyVersions) {
for(gemfile in gemfiles) {
stage("Test with ruby $rubyVersion and gemfile $gemfile") {
govuk.setEnvar("RBENV_VERSION", rubyVersion)
govuk.setEnvar("BUNDLE_GEMFILE", "gemfiles/${gemfile}.gemfile")
govuk.bundleGem()
govuk.runTests()
}
}
}
},
afterTest: {
sh("unset RBENV_VERSION")
sh("unset BUNDLE_GEMFILE")
}
)
}