puppet_litmus 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4433a55c5c24b484d53d1584036b0bc8371f784dd762ce92eaff928ae984cb66
4
- data.tar.gz: '08c533a7048dce835a3af639dad0c5f481533fd50be36739c0a0be416e450634'
3
+ metadata.gz: 8a30baea9597240441a67b27c36f17d535c33db12b4099359b56bd812e756cbc
4
+ data.tar.gz: cb7f0aa263b87db882ab890f1c3c0b7629b26cc77210f74a94d708b9002875c2
5
5
  SHA512:
6
- metadata.gz: c52c6c1b0fa3908ecc2dda5bbc4502e0acc4e03c3eb41704f20a729acfa04f13abd3c8c1ede9f38ba69ea6476d0e32eb3870e36db1862c94dd0195dd79e3dc9b
7
- data.tar.gz: 44c24366269ac536d2089a3051099c2deeb1312f2b2e73ef64d99a2b9d2348abd0a173a4f65150ba19ffc56e1f7d3264dc1ca81796b278908c93222603b07804
6
+ metadata.gz: 8c8f045fd86d51b30319f30f56d0b3f472c9904e4400e89c35b21fce606d7b627c32f4a8e4d31abfe48d873dea040023aebcfb84cbacf4edf64198eb1e07442d
7
+ data.tar.gz: 1724f3326553387aaeeb8310980a242cc4cd047bd8ef3ae0b9ae12f10c677ea1db720484833750e7226ddaaa930288c8e0e79c56dc68b649b4f4a772e8c66f98
data/README.md CHANGED
@@ -27,25 +27,36 @@ Litmus also facilitates parallel test runs and running tests in isolation. Each
27
27
 
28
28
  Install Litmus as a gem by running `gem install puppet_litmus`.
29
29
 
30
- - Note if you choose to override the `litmus_inventory.yaml` location, please ensure that the directory strutcture you define exists.
30
+ - Note if you choose to override the `litmus_inventory.yaml` location, please ensure that the directory structure you define exists.
31
31
 
32
32
  ## matrix_from_metadata_v2
33
33
 
34
- matrix_from_metadata_v2 tool generates github actions matrix from metadata.json
34
+ matrix_from_metadata_v2 tool generates a github action matrix from the supported operating systems listed in the module's metadata.json.
35
35
 
36
- How to use it: in the project module root directory run `bundle exec matrix_from_metadata_v2`
36
+ How to use it:
37
+ in the project module root directory run `bundle exec matrix_from_metadata_v2`
37
38
 
38
39
  ### --exclude-platforms parameter
39
40
 
40
- matrix_from_metadata_v2 accepts `--exclude-platforms <JSON array>` option in order to exclude some platforms from GA matrixes.
41
+ matrix_from_metadata_v2 accepts the `--exclude-platforms <JSON array>` argument in order to exclude some platforms from the matrix.
41
42
 
42
- In order to use this new functionality just simply run:
43
+ For example:
43
44
 
44
45
  `$: bundle exec matrix_from_metadata_v2 --exclude-platforms '["debian-11","centos-8"]'`
45
46
 
46
47
  > Note: The option value should be JSON string otherwise it will throw an error.
47
48
  > The values provided in the json array are case-insensitive `["debian-11","centos-8"]'` or `["Debian-11","CentOS-8"]'` are treated as being the same.
48
49
 
50
+ ### --custom-matrix parameter
51
+
52
+ matrix_from_metadata_v2 accepts the `--custom-matrix /path/to/matrix.json` argument in order to execute your test suite against a custom matrix. This is useful for use cases that do not fit the default matrix generated.
53
+
54
+ In order to use this new functionality, run:
55
+
56
+ `$: bundle exec matrix_from_metadata_v2 --custom-matrix matrix.json`
57
+
58
+ > Note: The file should contain a valid Array of JSON Objects (i.e. `[{"label":"AlmaLinux-8","provider":"provision_service","image":"almalinux-cloud/almalinux-8"}, {..}]`), otherwise it will throw an error.
59
+
49
60
  ## Documentation
50
61
 
51
62
  For documentation, see our [Litmus Docs Site](https://puppetlabs.github.io/content-and-tooling-team/docs/litmus/).
@@ -98,7 +98,8 @@ module PuppetLitmus::RakeHelper
98
98
 
99
99
  results = {}
100
100
  targets.each do |node_name|
101
- next if node_name == 'litmus_localhost'
101
+ # next if local host or provisioner fact empty/not set (GH-421)
102
+ next if node_name == 'litmus_localhost' || facts_from_node(inventory_hash, node_name)['provisioner'].nil?
102
103
 
103
104
  result = tear_down(node_name, inventory_hash)
104
105
  # Some provisioners tear_down targets that were created as a batch job.
@@ -327,7 +328,7 @@ module PuppetLitmus::RakeHelper
327
328
  end
328
329
 
329
330
  def start_spinner(message)
330
- if (ENV['CI'] || '').casecmp('true').zero?
331
+ if (ENV['CI'] || '').casecmp('true').zero? || Gem.win_platform?
331
332
  puts message
332
333
  spinner = Thread.new do
333
334
  # CI systems are strange beasts, we only output a '.' every wee while to keep the terminal alive.
@@ -345,7 +346,7 @@ module PuppetLitmus::RakeHelper
345
346
  end
346
347
 
347
348
  def stop_spinner(spinner)
348
- if (ENV['CI'] || '').casecmp('true').zero?
349
+ if (ENV['CI'] || '').casecmp('true').zero? || Gem.win_platform?
349
350
  Thread.kill(spinner)
350
351
  else
351
352
  spinner.success
@@ -75,6 +75,8 @@ namespace :litmus do
75
75
  task :provision, [:provisioner, :platform, :inventory_vars] do |_task, args|
76
76
  Rake::Task['spec_prep'].invoke
77
77
 
78
+ retry_count = 3
79
+ current_retry_count = 0
78
80
  begin
79
81
  spinner = start_spinner("Provisioning #{args[:platform]} using #{args[:provisioner]} provisioner.")
80
82
 
@@ -94,6 +96,13 @@ namespace :litmus do
94
96
  check_connectivity?(inventory_hash_from_inventory_file, target)
95
97
  end
96
98
  end
99
+ rescue PuppetLitmus::RakeHelper::LitmusTimeoutError
100
+ current_retry_count += 1
101
+ Rake::Task['litmus:tear_down'].invoke(target_names.first)
102
+ raise if current_retry_count > retry_count
103
+
104
+ puts "Provision of node #{target_names.first} failed, Retrying #{current_retry_count} of #{retry_count}"
105
+ retry
97
106
  ensure
98
107
  stop_spinner(spinner)
99
108
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # version of this gem
4
4
  module PuppetLitmus
5
- VERSION = '1.1.0'
5
+ VERSION = '1.1.2'
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet_litmus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-06 00:00:00.000000000 Z
11
+ date: 2023-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bolt