Skip to content

Commit 3515097

Browse files
authored
Move test to CircleCI (DataDog#595)
- Migrates tests from TravisCI to CircleCI. - Reduces test matrix from 11 Puppet versions per Ruby version to 6 Puppet versions per Ruby version. - Commits Gemfile.lock to the repo. - Removes unused test dependency rspec-puppet-facts and adds missing ruby-pwsh on Windows.
1 parent 820c244 commit 3515097

6 files changed

Lines changed: 417 additions & 66 deletions

File tree

.circleci/config.yml

Lines changed: 283 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,283 @@
1+
version: 2.1
2+
orbs:
3+
win: circleci/windows@2.2.0
4+
jobs:
5+
specs-ruby21-puppet46: &specs
6+
machine: true
7+
environment:
8+
STRICT_VARIABLES: 'yes'
9+
RUBY_VERSION: '2.1.9'
10+
PUPPET_VERSION: '4.6.2'
11+
steps:
12+
- checkout
13+
- run:
14+
name: Install Ruby version
15+
command: rvm install $RUBY_VERSION
16+
- run:
17+
name: Install bundler
18+
command: rvm $RUBY_VERSION --verbose do gem install bundler:1.17.3
19+
- run:
20+
name: Install gem dependencies
21+
command: rm Gemfile.lock && rvm $RUBY_VERSION --verbose do bundle install --path .bundle
22+
- run:
23+
name: Run tests
24+
command: rvm $RUBY_VERSION --verbose do bundle exec rake test
25+
26+
specs-ruby21-puppet410:
27+
<<: *specs
28+
environment:
29+
STRICT_VARIABLES: 'yes'
30+
RUBY_VERSION: '2.1.9'
31+
PUPPET_VERSION: '4.10.9'
32+
33+
specs-ruby21-puppet50:
34+
<<: *specs
35+
environment:
36+
STRICT_VARIABLES: 'yes'
37+
RUBY_VERSION: '2.1.9'
38+
PUPPET_VERSION: '5.0.1'
39+
40+
specs-ruby21-puppet53:
41+
<<: *specs
42+
environment:
43+
STRICT_VARIABLES: 'yes'
44+
RUBY_VERSION: '2.1.9'
45+
PUPPET_VERSION: '5.3.3'
46+
47+
# Puppet 6 depends on ruby >= 2.3
48+
#specs-ruby21-puppet60
49+
#specs-ruby21-puppet65
50+
51+
specs-ruby22-puppet46:
52+
<<: *specs
53+
environment:
54+
STRICT_VARIABLES: 'yes'
55+
RUBY_VERSION: '2.2.3'
56+
PUPPET_VERSION: '4.6.2'
57+
58+
specs-ruby22-puppet410:
59+
<<: *specs
60+
environment:
61+
STRICT_VARIABLES: 'yes'
62+
RUBY_VERSION: '2.2.3'
63+
PUPPET_VERSION: '4.10.9'
64+
65+
specs-ruby22-puppet50:
66+
<<: *specs
67+
environment:
68+
STRICT_VARIABLES: 'yes'
69+
RUBY_VERSION: '2.2.3'
70+
PUPPET_VERSION: '5.0.1'
71+
72+
specs-ruby22-puppet53:
73+
<<: *specs
74+
environment:
75+
STRICT_VARIABLES: 'yes'
76+
RUBY_VERSION: '2.2.3'
77+
PUPPET_VERSION: '5.3.3'
78+
79+
# Puppet 6 depends on ruby >= 2.3
80+
#specs-ruby22-puppet60
81+
#specs-ruby22-puppet65
82+
83+
specs-ruby23-puppet46:
84+
<<: *specs
85+
environment:
86+
STRICT_VARIABLES: 'yes'
87+
RUBY_VERSION: '2.3.6'
88+
PUPPET_VERSION: '4.6.2'
89+
90+
specs-ruby23-puppet410:
91+
<<: *specs
92+
environment:
93+
STRICT_VARIABLES: 'yes'
94+
RUBY_VERSION: '2.3.6'
95+
PUPPET_VERSION: '4.10.9'
96+
97+
specs-ruby23-puppet50:
98+
<<: *specs
99+
environment:
100+
STRICT_VARIABLES: 'yes'
101+
RUBY_VERSION: '2.3.6'
102+
PUPPET_VERSION: '5.0.1'
103+
104+
specs-ruby23-puppet53:
105+
<<: *specs
106+
environment:
107+
STRICT_VARIABLES: 'yes'
108+
RUBY_VERSION: '2.3.6'
109+
PUPPET_VERSION: '5.3.3'
110+
111+
specs-ruby23-puppet60:
112+
<<: *specs
113+
environment:
114+
STRICT_VARIABLES: 'yes'
115+
RUBY_VERSION: '2.3.6'
116+
PUPPET_VERSION: '6.0.0'
117+
118+
specs-ruby23-puppet65:
119+
<<: *specs
120+
environment:
121+
STRICT_VARIABLES: 'yes'
122+
RUBY_VERSION: '2.3.6'
123+
PUPPET_VERSION: '6.5.0'
124+
125+
specs-ruby24-puppet46:
126+
<<: *specs
127+
environment:
128+
STRICT_VARIABLES: 'yes'
129+
RUBY_VERSION: '2.4.3'
130+
PUPPET_VERSION: '4.6.2'
131+
132+
specs-ruby24-puppet410:
133+
<<: *specs
134+
environment:
135+
STRICT_VARIABLES: 'yes'
136+
RUBY_VERSION: '2.4.3'
137+
PUPPET_VERSION: '4.10.9'
138+
139+
specs-ruby24-puppet50:
140+
<<: *specs
141+
environment:
142+
STRICT_VARIABLES: 'yes'
143+
RUBY_VERSION: '2.4.3'
144+
PUPPET_VERSION: '5.0.1'
145+
146+
specs-ruby24-puppet53:
147+
<<: *specs
148+
environment:
149+
STRICT_VARIABLES: 'yes'
150+
RUBY_VERSION: '2.4.3'
151+
PUPPET_VERSION: '5.3.3'
152+
153+
specs-ruby24-puppet60:
154+
<<: *specs
155+
environment:
156+
STRICT_VARIABLES: 'yes'
157+
RUBY_VERSION: '2.4.3'
158+
PUPPET_VERSION: '6.0.0'
159+
160+
specs-ruby24-puppet65:
161+
<<: *specs
162+
environment:
163+
STRICT_VARIABLES: 'yes'
164+
RUBY_VERSION: '2.4.3'
165+
PUPPET_VERSION: '6.5.0'
166+
167+
specs-ruby26-puppet46:
168+
<<: *specs
169+
environment:
170+
STRICT_VARIABLES: 'yes'
171+
RUBY_VERSION: '2.6.3'
172+
PUPPET_VERSION: '4.6.2'
173+
174+
specs-ruby26-puppet410:
175+
<<: *specs
176+
environment:
177+
STRICT_VARIABLES: 'yes'
178+
RUBY_VERSION: '2.6.3'
179+
PUPPET_VERSION: '4.10.9'
180+
181+
specs-ruby26-puppet50:
182+
<<: *specs
183+
environment:
184+
STRICT_VARIABLES: 'yes'
185+
RUBY_VERSION: '2.6.3'
186+
PUPPET_VERSION: '5.0.1'
187+
188+
specs-ruby26-puppet53:
189+
<<: *specs
190+
environment:
191+
STRICT_VARIABLES: 'yes'
192+
RUBY_VERSION: '2.6.3'
193+
PUPPET_VERSION: '5.3.3'
194+
195+
specs-ruby26-puppet60:
196+
<<: *specs
197+
environment:
198+
STRICT_VARIABLES: 'yes'
199+
RUBY_VERSION: '2.6.3'
200+
PUPPET_VERSION: '6.0.0'
201+
202+
specs-ruby26-puppet65:
203+
<<: *specs
204+
environment:
205+
STRICT_VARIABLES: 'yes'
206+
RUBY_VERSION: '2.6.3'
207+
PUPPET_VERSION: '6.5.0'
208+
209+
specs-ruby25-puppet65-windows: &windows-specs
210+
executor:
211+
name: win/default # Comes with ruby 2.6, which is not supported on Windows as of puppet 6.10.1
212+
shell: bash.exe
213+
steps:
214+
- checkout
215+
- run:
216+
name: Run tests
217+
command: |
218+
choco install ruby --allow-downgrade -y --version 2.5.3.101 # Keep version in sync with next command!
219+
export PATH=/c/tools/ruby25/bin:$PATH # Make Ruby 2.5 take precedence over the pre-installed 2.6
220+
ruby --version
221+
choco install msys2 --allow-downgrade -y --version 20180531.0.0
222+
ridk.cmd exec pacman -S --noconfirm --needed base-devel mingw-w64-x86_64-toolchain
223+
powershell kill -n gpg-agent # Started by msys, if we don't kill it the job stays running forever (found by running 'ps -W' before and after the last two commands)
224+
gem install bundler -v 1.17.3
225+
rm Gemfile.lock && bundle install --path .bundle
226+
bundle exec rake test
227+
environment:
228+
STRICT_VARIABLES: 'yes'
229+
#RUBY_VERSION hardcoded in install script
230+
PUPPET_VERSION: '6.5.0'
231+
232+
verify-gemfile-lock-dependencies:
233+
machine: true
234+
environment:
235+
STRICT_VARIABLES: 'yes'
236+
RUBY_VERSION: '2.6.3'
237+
steps:
238+
- checkout
239+
- run:
240+
name: Install Ruby versions
241+
command: rvm install $RUBY_VERSION
242+
- run:
243+
name: Install bundler
244+
command: rvm $RUBY_VERSION --verbose do gem install bundler:1.17.3
245+
- run:
246+
name: Install gem dependencies
247+
command: rvm $RUBY_VERSION --verbose do bundle install --path .bundle
248+
- run:
249+
name: Run tests
250+
command: rvm $RUBY_VERSION --verbose do bundle exec rake test
251+
252+
workflows:
253+
version: 2
254+
build_and_test:
255+
jobs:
256+
- specs-ruby21-puppet46
257+
- specs-ruby21-puppet410
258+
- specs-ruby21-puppet50
259+
- specs-ruby21-puppet53
260+
- specs-ruby22-puppet46
261+
- specs-ruby22-puppet410
262+
- specs-ruby22-puppet50
263+
- specs-ruby22-puppet53
264+
- specs-ruby23-puppet46
265+
- specs-ruby23-puppet410
266+
- specs-ruby23-puppet50
267+
- specs-ruby23-puppet53
268+
- specs-ruby23-puppet60
269+
- specs-ruby23-puppet65
270+
- specs-ruby24-puppet46
271+
- specs-ruby24-puppet410
272+
- specs-ruby24-puppet50
273+
- specs-ruby24-puppet53
274+
- specs-ruby24-puppet60
275+
- specs-ruby24-puppet65
276+
- specs-ruby26-puppet46
277+
- specs-ruby26-puppet410
278+
- specs-ruby26-puppet50
279+
- specs-ruby26-puppet53
280+
- specs-ruby26-puppet60
281+
- specs-ruby26-puppet65
282+
- specs-ruby25-puppet65-windows
283+
- verify-gemfile-lock-dependencies

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ spec/fixtures
33
.rspec_system
44
.bundle
55
vendor
6-
Gemfile.lock
76

87
.rbenv-gemsets
98
.ruby-version

.travis.yml

Lines changed: 0 additions & 55 deletions
This file was deleted.

Gemfile

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,16 @@ group :test do
44
gem "rb-inotify", '< 0.10.0' if RUBY_VERSION < '2.2.0'
55
gem "public_suffix", "~> 3.0.0"
66
gem "listen", "~> 3.0.0"
7-
if RUBY_PLATFORM=~ /win32/ || RUBY_PLATFORM=~ /mingw32/
8-
# Using a newer version on Windows to avoid hitting https://tickets.puppetlabs.com/browse/PUP-7383
9-
gem "puppet", ENV['PUPPET_VERSION'] || '~> 4.10.2'
10-
else
11-
gem "puppet", ENV['PUPPET_VERSION'] || '~> 4.6.2'
12-
end
7+
# Puppet 4.10.2 is the minimum version we support on Windows due to https://tickets.puppetlabs.com/browse/PUP-7383
8+
# On Linux we support down to 4.6
9+
gem "puppet", "~> #{ENV.fetch('PUPPET_VERSION', '4.10.2')}"
1310
gem "puppet-lint", "~> 2.3.6"
1411
gem "puppet-syntax", "~> 2.5.0"
1512
gem "puppetlabs_spec_helper", "~> 2.14.1"
1613
gem "jwt", "~> 1.5.6"
1714
gem "rake", "~> 12.3.3" # last version to support ruby < 2.6
1815
gem "rspec-puppet", '2.6.9'
19-
gem 'rspec-puppet-facts', '~> 1.7', :require => false
16+
gem "ruby-pwsh", '~> 0.3.0', platforms: [:mswin, :mingw, :x64_mingw]
2017
end
2118

2219
group :development do

0 commit comments

Comments
 (0)