itamae 1.11.1 → 1.12.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2213250f28fa9b34d4c8d149add25c33f9955b6dd30dfab4fc7ddd9f4e438e61
4
- data.tar.gz: 12b67ddfa15210dfb1ea8d35b5aa02db9e4985f4e141c66d7102628b09b5f914
3
+ metadata.gz: 8ae63d9a50f327992d3efd26c9e0de210038cbacdad66a46f25506ff4120c14e
4
+ data.tar.gz: 2c8d8acb12e94cb4b3bdc8708d1928165a8b2b05f84a1036d01713a248542519
5
5
  SHA512:
6
- metadata.gz: 4a83817032655a372418a0c2aeef5561e2b669c075b16a0b56f3522d94883396cc535b44cad5d3e2b7c2b8c8c4fdbf400eb95a9efe986b97effaa587cf8d5564
7
- data.tar.gz: 96380efa8166f7629035be66884c3526c4c521eaababb5303bf0c520bbb914ebcb8de2e2492bd0ffbc1681d8285d62e011853476565b409486f040422101007a
6
+ metadata.gz: 743001b3776f624308d7c4b85842f4fb186f0260eed592112e9aa6f9bd786032894090a2221ce6a4f969569159c78261fefc87270ba0e45ca6e71ade21e23333
7
+ data.tar.gz: 051e86dc11a37a1acc66a481ac96c768e6d0f20c3894dae2c94698f590b308b4374d84b2c3ae91f7aa2cd7c12f6aeb2ba4f16c5b748a809a4fd9058663de75cb
@@ -0,0 +1,202 @@
1
+ name: test
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ types:
9
+ - opened
10
+ - synchronize
11
+ - reopened
12
+ schedule:
13
+ - cron: "0 0 * * 5" # JST 9:00 (Fri)
14
+
15
+ jobs:
16
+ unit:
17
+ runs-on: ubuntu-latest
18
+
19
+ strategy:
20
+ fail-fast: false
21
+
22
+ matrix:
23
+ ruby:
24
+ - "2.3"
25
+ - "2.4"
26
+ - "2.5"
27
+ - "2.6"
28
+ - "2.7"
29
+ - "3.0"
30
+ rubyopt:
31
+ - ""
32
+ - "--jit"
33
+ exclude:
34
+ # --jit is available since MRI 2.6
35
+ - ruby: "2.3"
36
+ rubyopt: "--jit"
37
+ - ruby: "2.4"
38
+ rubyopt: "--jit"
39
+ - ruby: "2.5"
40
+ rubyopt: "--jit"
41
+
42
+ env:
43
+ RUBYOPT: ${{ matrix.rubyopt }}
44
+
45
+ steps:
46
+ - uses: actions/checkout@v2
47
+
48
+ - uses: ruby/setup-ruby@v1
49
+ with:
50
+ ruby-version: ${{ matrix.ruby }}
51
+ bundler-cache: true
52
+
53
+ - run: bundle update
54
+
55
+ - run: bundle exec rake spec:unit
56
+
57
+ - name: Slack Notification (not success)
58
+ uses: lazy-actions/slatify@master
59
+ if: "! success()"
60
+ continue-on-error: true
61
+ with:
62
+ job_name: ${{ format('*unit* ({0},{1})', matrix.ruby, matrix.rubyopt) }}
63
+ type: ${{ job.status }}
64
+ icon_emoji: ":octocat:"
65
+ url: ${{ secrets.SLACK_WEBHOOK }}
66
+ token: ${{ secrets.GITHUB_TOKEN }}
67
+
68
+ integration-docker:
69
+ runs-on: ubuntu-latest
70
+
71
+ strategy:
72
+ fail-fast: false
73
+
74
+ matrix:
75
+ ruby:
76
+ - "2.3"
77
+ - "2.4"
78
+ - "2.5"
79
+ - "2.6"
80
+ - "2.7"
81
+ - "3.0"
82
+ rubyopt:
83
+ - ""
84
+ - "--jit"
85
+ image:
86
+ - ubuntu:trusty
87
+ exclude:
88
+ # --jit is available since MRI 2.6
89
+ - ruby: "2.3"
90
+ rubyopt: "--jit"
91
+ - ruby: "2.4"
92
+ rubyopt: "--jit"
93
+ - ruby: "2.5"
94
+ rubyopt: "--jit"
95
+
96
+ env:
97
+ RUBYOPT: ${{ matrix.rubyopt }}
98
+ TEST_IMAGE: ${{ matrix.image }}
99
+
100
+ steps:
101
+ - uses: actions/checkout@v2
102
+
103
+ - uses: ruby/setup-ruby@v1
104
+ with:
105
+ ruby-version: ${{ matrix.ruby }}
106
+ bundler-cache: true
107
+
108
+ - run: bundle update
109
+
110
+ - run: bundle exec rake spec:integration:docker:boot
111
+
112
+ - run: bundle exec rake spec:integration:docker:provision
113
+ env:
114
+ # FIXME: avoid error for "Command `chmod 777 /tmp/itamae_tmp` failed. (exit status: 1)"
115
+ ITAMAE_TMP_DIR: /var/tmp/itamae_tmp
116
+
117
+ - run: bundle exec rake spec:integration:docker:serverspec
118
+ - run: bundle exec rake spec:integration:docker:clean_docker_container
119
+
120
+ - name: Slack Notification (not success)
121
+ uses: lazy-actions/slatify@master
122
+ if: "! success()"
123
+ continue-on-error: true
124
+ with:
125
+ job_name: ${{ format('*integration-docker* ({0},{1},{2})', matrix.ruby, matrix.rubyopt, matrix.image) }}
126
+ type: ${{ job.status }}
127
+ icon_emoji: ":octocat:"
128
+ url: ${{ secrets.SLACK_WEBHOOK }}
129
+ token: ${{ secrets.GITHUB_TOKEN }}
130
+
131
+ integration-local:
132
+ runs-on: ubuntu-latest
133
+
134
+ strategy:
135
+ fail-fast: false
136
+
137
+ matrix:
138
+ ruby:
139
+ - "2.3"
140
+ - "2.4"
141
+ - "2.5"
142
+ - "2.6"
143
+ - "2.7"
144
+ - "3.0"
145
+ rubyopt:
146
+ - ""
147
+ - "--jit"
148
+ exclude:
149
+ # --jit is available since MRI 2.6
150
+ - ruby: "2.3"
151
+ rubyopt: "--jit"
152
+ - ruby: "2.4"
153
+ rubyopt: "--jit"
154
+ - ruby: "2.5"
155
+ rubyopt: "--jit"
156
+
157
+ env:
158
+ RUBYOPT: ${{ matrix.rubyopt }}
159
+
160
+ steps:
161
+ - uses: actions/checkout@v2
162
+
163
+ - uses: ruby/setup-ruby@v1
164
+ with:
165
+ ruby-version: ${{ matrix.ruby }}
166
+ bundler-cache: true
167
+
168
+ - run: bundle update
169
+
170
+ - run: bundle exec rake spec:integration:local:main
171
+ - run: bundle exec rake spec:integration:local:ordinary_user
172
+
173
+ - name: Slack Notification (not success)
174
+ uses: lazy-actions/slatify@master
175
+ if: "! success()"
176
+ continue-on-error: true
177
+ with:
178
+ job_name: ${{ format('*integration-local* ({0},{1})', matrix.ruby, matrix.rubyopt) }}
179
+ type: ${{ job.status }}
180
+ icon_emoji: ":octocat:"
181
+ url: ${{ secrets.SLACK_WEBHOOK }}
182
+ token: ${{ secrets.GITHUB_TOKEN }}
183
+
184
+ notify:
185
+ needs:
186
+ - unit
187
+ - integration-docker
188
+ - integration-local
189
+
190
+ runs-on: ubuntu-latest
191
+
192
+ steps:
193
+ - name: Slack Notification (success)
194
+ uses: lazy-actions/slatify@master
195
+ if: always()
196
+ continue-on-error: true
197
+ with:
198
+ job_name: '*notify*'
199
+ type: ${{ job.status }}
200
+ icon_emoji: ":octocat:"
201
+ url: ${{ secrets.SLACK_WEBHOOK }}
202
+ token: ${{ secrets.GITHUB_TOKEN }}
data/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  ## Unreleased
2
- [full changelog](https://github.com/itamae-kitchen/itamae/compare/v1.11.1...master)
2
+ [full changelog](https://github.com/itamae-kitchen/itamae/compare/v1.12.2...master)
3
+
4
+ ## v1.12.2
5
+ [full changelog](https://github.com/itamae-kitchen/itamae/compare/v1.12.1...v1.12.2)
6
+
7
+ Improvements
8
+
9
+ - [remote_directory: add diff -r option](https://github.com/itamae-kitchen/itamae/pull/338)
10
+
11
+ ## v1.12.1
12
+ [full changelog](https://github.com/itamae-kitchen/itamae/compare/v1.12.0...v1.12.1)
13
+
14
+ Improvements
15
+
16
+ - [Allow defining top-level modules without `::`](https://github.com/itamae-kitchen/itamae/pull/332)
17
+
18
+ ## v1.12.0
19
+ [full changelog](https://github.com/itamae-kitchen/itamae/compare/v1.11.2...v1.12.0)
20
+
21
+ Improvements
22
+
23
+ - [Add `--tmp-dir` to cli options](https://github.com/itamae-kitchen/itamae/pull/331)
24
+
25
+ ## v1.11.2
26
+ [full changelog](https://github.com/itamae-kitchen/itamae/compare/v1.11.1...v1.11.2)
27
+
28
+ Bugfixes
29
+
30
+ - [Support thor-1.1.0 (by @chaaaaarlotte)](https://github.com/itamae-kitchen/itamae/pull/329)
3
31
 
4
32
  ## v1.11.1
5
33
  [full changelog](https://github.com/itamae-kitchen/itamae/compare/v1.11.0...v1.11.1)
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # [![](https://raw.githubusercontent.com/itamae-kitchen/itamae-logos/master/small/FA-Itamae-horizontal-01-180x72.png)](https://github.com/itamae-kitchen/itamae)
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/itamae.svg)](http://badge.fury.io/rb/itamae) [![Code Climate](https://codeclimate.com/github/ryotarai/itamae/badges/gpa.svg)](https://codeclimate.com/github/ryotarai/itamae) [![Build Status](https://travis-ci.com/itamae-kitchen/itamae.svg?branch=master)](https://travis-ci.com/itamae-kitchen/itamae) [![Slack](https://img.shields.io/badge/slack-join-blue.svg)](https://join.slack.com/t/itamae/shared_invite/enQtNTExNTI3ODM1NTY5LTM5MWJlZTgwODE0YTUwMThiNzZjN2I1MGNlZjE2NjlmNzg5NTNlOTliMDhkNDNmNTQ2ZTgwMzZjNjI5NDJiZGI)
3
+ [![Gem Version](https://badge.fury.io/rb/itamae.svg)](http://badge.fury.io/rb/itamae) [![Code Climate](https://codeclimate.com/github/ryotarai/itamae/badges/gpa.svg)](https://codeclimate.com/github/ryotarai/itamae) [![Build Status](https://github.com/itamae-kitchen/itamae/workflows/test/badge.svg?branch=master)](https://github.com/itamae-kitchen/itamae/actions?query=workflow%3Atest) [![Slack](https://img.shields.io/badge/slack-join-blue.svg)](https://join.slack.com/t/itamae/shared_invite/enQtNTExNTI3ODM1NTY5LTM5MWJlZTgwODE0YTUwMThiNzZjN2I1MGNlZjE2NjlmNzg5NTNlOTliMDhkNDNmNTQ2ZTgwMzZjNjI5NDJiZGI)
4
4
 
5
5
  Simple and lightweight configuration management tool inspired by Chef.
6
6
 
data/Rakefile CHANGED
@@ -10,6 +10,8 @@ end
10
10
  desc 'Run unit and integration specs.'
11
11
  task :spec => ['spec:unit', 'spec:integration:all']
12
12
 
13
+ TEST_IMAGE = ENV["TEST_IMAGE"] || "ubuntu:trusty"
14
+
13
15
  namespace :spec do
14
16
  RSpec::Core::RakeTask.new("unit") do |task|
15
17
  task.ruby_opts = '-I ./spec/unit'
@@ -17,60 +19,54 @@ namespace :spec do
17
19
  end
18
20
 
19
21
  namespace :integration do
20
- targets = ["ubuntu:trusty"]
21
22
  container_name = 'itamae'
22
23
 
23
- task :all => targets + ['spec:integration:local']
24
+ task :all => ['spec:integration:docker' 'spec:integration:local']
24
25
 
25
- targets.each do |target|
26
- desc "Run provision and specs to #{target}"
27
- task target => ["docker:#{target}", "provision:#{target}", "serverspec:#{target}", 'clean_docker_container']
26
+ desc "Run provision and specs"
27
+ task :docker => ["docker:boot", "docker:provision", "docker:serverspec", 'docker:clean_docker_container']
28
28
 
29
- namespace :docker do
30
- desc "Run docker for #{target}"
31
- task target do
32
- sh "docker run --privileged -d --name #{container_name} #{target} /sbin/init"
33
- end
29
+ namespace :docker do
30
+ desc "Run docker"
31
+ task :boot do
32
+ sh "docker run --privileged -d --name #{container_name} #{TEST_IMAGE} /sbin/init"
34
33
  end
35
34
 
36
- namespace :provision do
37
- desc "Run itamae to #{target}"
38
- task target do
39
- suites = [
40
- [
41
- "spec/integration/recipes/default.rb",
42
- "spec/integration/recipes/default2.rb",
43
- "spec/integration/recipes/redefine.rb",
44
- "spec/integration/recipes/docker.rb",
45
- ],
46
- [
47
- "--dry-run",
48
- "spec/integration/recipes/dry_run.rb",
49
- ],
50
- ]
51
- suites.each do |suite|
52
- cmd = %w!bundle exec ruby -w bin/itamae docker!
53
- cmd << "-l" << (ENV['LOG_LEVEL'] || 'debug')
54
- cmd << "-j" << "spec/integration/recipes/node.json"
55
- cmd << "--container" << container_name
56
- cmd << "--tag" << "itamae:latest"
57
- cmd += suite
35
+ desc "Run itamae"
36
+ task :provision do
37
+ suites = [
38
+ [
39
+ "spec/integration/recipes/default.rb",
40
+ "spec/integration/recipes/default2.rb",
41
+ "spec/integration/recipes/redefine.rb",
42
+ "spec/integration/recipes/docker.rb",
43
+ ],
44
+ [
45
+ "--dry-run",
46
+ "spec/integration/recipes/dry_run.rb",
47
+ ],
48
+ ]
49
+ suites.each do |suite|
50
+ cmd = %w!bundle exec ruby -w bin/itamae docker!
51
+ cmd << "-l" << (ENV['LOG_LEVEL'] || 'debug')
52
+ cmd << "-j" << "spec/integration/recipes/node.json"
53
+ cmd << "--container" << container_name
54
+ cmd << "--tag" << "itamae:latest"
55
+ cmd << "--tmp-dir" << (ENV['ITAMAE_TMP_DIR'] || '/tmp/itamae_tmp')
56
+ cmd += suite
58
57
 
59
- p cmd
60
- unless system(*cmd)
61
- raise "#{cmd} failed"
62
- end
58
+ p cmd
59
+ unless system(*cmd)
60
+ raise "#{cmd} failed"
63
61
  end
64
62
  end
65
63
  end
66
64
 
67
- namespace :serverspec do
68
- desc "Run serverspec tests to #{target}"
69
- RSpec::Core::RakeTask.new(target.to_sym) do |t|
70
- ENV['DOCKER_CONTAINER'] = container_name
71
- t.ruby_opts = '-I ./spec/integration'
72
- t.pattern = "spec/integration/{default,docker}_spec.rb"
73
- end
65
+ desc "Run serverspec tests"
66
+ RSpec::Core::RakeTask.new(:serverspec) do |t|
67
+ ENV['DOCKER_CONTAINER'] = container_name
68
+ t.ruby_opts = '-I ./spec/integration'
69
+ t.pattern = "spec/integration/{default,docker}_spec.rb"
74
70
  end
75
71
 
76
72
  desc 'Clean a docker container for test'
data/lib/itamae/cli.rb CHANGED
@@ -25,6 +25,15 @@ module Itamae
25
25
  option :log_level, type: :string, aliases: ['-l'], default: 'info'
26
26
  option :color, type: :boolean, default: true
27
27
  option :config, type: :string, aliases: ['-c']
28
+ option :tmp_dir, type: :string, aliases: ['-t'], default: "/tmp/itamae_tmp"
29
+ end
30
+
31
+ def self.options
32
+ @itamae_options ||= super.dup.tap do |options|
33
+ if config = options[:config]
34
+ options.merge!(YAML.load_file(config))
35
+ end
36
+ end
28
37
  end
29
38
 
30
39
  desc "local RECIPE [RECIPE...]", "Run Itamae locally"
@@ -117,14 +126,6 @@ module Itamae
117
126
  end
118
127
 
119
128
  private
120
- def options
121
- @itamae_options ||= super.dup.tap do |options|
122
- if config = options[:config]
123
- options.merge!(YAML.load_file(config))
124
- end
125
- end
126
- end
127
-
128
129
  def validate_generate_target!(command, target)
129
130
  unless GENERATE_TARGETS.include?(target)
130
131
  msg = %Q!ERROR: "itamae #{command}" was called with "#{target}" !
data/lib/itamae/recipe.rb CHANGED
@@ -53,7 +53,7 @@ module Itamae
53
53
 
54
54
  def load(vars = {})
55
55
  context = EvalContext.new(self, vars)
56
- context.instance_eval(File.read(path), path, 1)
56
+ InstanceEval.new(File.read(path), path, 1, context: context).call
57
57
  end
58
58
 
59
59
  def run
@@ -151,6 +151,25 @@ module Itamae
151
151
  end
152
152
  end
153
153
 
154
+ class InstanceEval
155
+ def initialize(src, path, lineno, context:)
156
+ # Using instance_eval + eval to allow top-level class/module definition without `::`.
157
+ # To pass args without introducing any local/instance variables, this code is also eval-ed.
158
+ @code = <<-RUBY
159
+ @context.instance_eval do
160
+ eval(#{src.dump}, nil, #{path.dump}, #{lineno})
161
+ end
162
+ RUBY
163
+ @context = context
164
+ end
165
+
166
+ # This method has no local variables to avoid spilling them to recipes.
167
+ def call
168
+ eval(@code)
169
+ end
170
+ end
171
+ private_constant :InstanceEval
172
+
154
173
  class RecipeFromDefinition < Recipe
155
174
  attr_accessor :definition
156
175
 
@@ -39,7 +39,7 @@ module Itamae
39
39
  super
40
40
 
41
41
  if current.exist
42
- diff = run_command(["diff", "-u", attributes.path, @temppath], error: false)
42
+ diff = run_command(["diff", "-u", "-r", attributes.path, @temppath], error: false)
43
43
  if diff.exit_status == 0
44
44
  # no change
45
45
  Itamae.logger.debug "directory content will not change"
data/lib/itamae/runner.rb CHANGED
@@ -30,7 +30,7 @@ module Itamae
30
30
  prepare_handler
31
31
 
32
32
  @node = create_node
33
- @tmpdir = "/tmp/itamae_tmp"
33
+ @tmpdir = options[:tmp_dir]
34
34
  @children = RecipeChildren.new
35
35
  @diff = false
36
36
 
@@ -1,3 +1,3 @@
1
1
  module Itamae
2
- VERSION = "1.11.1"
2
+ VERSION = "1.12.2"
3
3
  end
@@ -333,3 +333,21 @@ describe file('/tmp/empty_file3') do
333
333
  it { should be_file }
334
334
  its(:content) { should eq "" }
335
335
  end
336
+
337
+ describe file('/tmp/toplevel_module') do
338
+ it { should exist }
339
+ it { should be_file }
340
+ its(:content) { should eq "helper" }
341
+ end
342
+
343
+ describe file('/tmp/local_variables') do
344
+ it { should exist }
345
+ it { should be_file }
346
+ its(:content) { should eq "[]" }
347
+ end
348
+
349
+ describe file('/tmp/instance_variables') do
350
+ it { should exist }
351
+ it { should be_file }
352
+ its(:content) { should eq "[:@recipe]" } # backward compatibility
353
+ end
@@ -556,3 +556,9 @@ unless v1 == v2 && v2 == v3 && v1 =~ /\A\d+kB\z/
556
556
  raise "failed to fetch host inventory value (#{v1}, #{v2}, #{v3})"
557
557
  end
558
558
 
559
+ include_recipe "toplevel_module"
560
+ file "/tmp/toplevel_module" do
561
+ content ToplevelModule.helper
562
+ end
563
+
564
+ include_recipe "variables"
@@ -0,0 +1,6 @@
1
+ # Testing you don't need to write `module ::ToplevelModule`
2
+ module ToplevelModule
3
+ def self.helper
4
+ "helper"
5
+ end
6
+ end
@@ -0,0 +1,14 @@
1
+ node.reverse_merge!(
2
+ variables: {
3
+ lvars: binding.local_variables,
4
+ ivars: instance_variables,
5
+ }
6
+ )
7
+
8
+ file "/tmp/local_variables" do
9
+ content node[:variables][:lvars].to_s
10
+ end
11
+
12
+ file "/tmp/instance_variables" do
13
+ content node[:variables][:ivars].to_s
14
+ end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itamae
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.1
4
+ version: 1.12.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryota Arai
8
8
  - Yusuke Nakamura
9
9
  - sue445
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-12-29 00:00:00.000000000 Z
13
+ date: 2021-10-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: thor
@@ -200,7 +200,7 @@ dependencies:
200
200
  - - ">="
201
201
  - !ruby/object:Gem::Version
202
202
  version: '0'
203
- description:
203
+ description:
204
204
  email:
205
205
  - ryota.arai@gmail.com
206
206
  - yusuke1994525@gmail.com
@@ -210,9 +210,9 @@ executables:
210
210
  extensions: []
211
211
  extra_rdoc_files: []
212
212
  files:
213
+ - ".github/workflows/test.yml"
213
214
  - ".gitignore"
214
215
  - ".rspec"
215
- - ".travis.yml"
216
216
  - CHANGELOG.md
217
217
  - Gemfile
218
218
  - LICENSE.txt
@@ -293,6 +293,8 @@ files:
293
293
  - spec/integration/recipes/redefine.rb
294
294
  - spec/integration/recipes/templates/empty_file.erb
295
295
  - spec/integration/recipes/templates/template_auto.erb
296
+ - spec/integration/recipes/toplevel_module.rb
297
+ - spec/integration/recipes/variables.rb
296
298
  - spec/integration/spec_helper.rb
297
299
  - spec/unit/lib/itamae/backend_spec.rb
298
300
  - spec/unit/lib/itamae/handler/base_spec.rb
@@ -314,7 +316,7 @@ metadata:
314
316
  homepage_uri: https://itamae.kitchen/
315
317
  source_code_uri: https://github.com/itamae-kitchen/itamae
316
318
  changelog_uri: https://github.com/itamae-kitchen/itamae/blob/master/CHANGELOG.md
317
- post_install_message:
319
+ post_install_message:
318
320
  rdoc_options: []
319
321
  require_paths:
320
322
  - lib
@@ -329,8 +331,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
329
331
  - !ruby/object:Gem::Version
330
332
  version: '0'
331
333
  requirements: []
332
- rubygems_version: 3.1.4
333
- signing_key:
334
+ rubygems_version: 3.2.22
335
+ signing_key:
334
336
  specification_version: 4
335
337
  summary: Simple Configuration Management Tool
336
338
  test_files:
@@ -357,6 +359,8 @@ test_files:
357
359
  - spec/integration/recipes/redefine.rb
358
360
  - spec/integration/recipes/templates/empty_file.erb
359
361
  - spec/integration/recipes/templates/template_auto.erb
362
+ - spec/integration/recipes/toplevel_module.rb
363
+ - spec/integration/recipes/variables.rb
360
364
  - spec/integration/spec_helper.rb
361
365
  - spec/unit/lib/itamae/backend_spec.rb
362
366
  - spec/unit/lib/itamae/handler/base_spec.rb
data/.travis.yml DELETED
@@ -1,41 +0,0 @@
1
- language: ruby
2
- sudo: required
3
- dist: xenial
4
- services:
5
- - docker
6
- rvm:
7
- - 2.3
8
- - 2.4
9
- - 2.5
10
- - 2.6
11
- - 2.7
12
- - 3.0
13
- - ruby-head
14
- bundler_args: "--jobs=4 --retry=3"
15
- cache:
16
- bundler: true
17
-
18
- before_install:
19
- - travis_retry gem install bundler --no-document || travis_retry gem install bundler --no-document -v 1.17.3
20
-
21
- script:
22
- - RUBYOPT=$SPEC_RUBYOPT bundle exec rake spec
23
- notifications:
24
- email: false
25
- slack:
26
- secure: PcecHsVS6lw89K5PllW8xFlzu0d04p6lYfxlUZL0/yp9flAczElJME4RshSMSkbnu5e2Iw8KUA2xB1jkAzDo9qYoXveaKyjkFUOb1ZxYIVxzzfoDDwUNTMmSoyjZjvbeBUcpxxmxy6nXa3zS+gA2ohqWhS9WTTlTqyM5RriDjZ8=
27
- matrix:
28
- allow_failures:
29
- - rvm: ruby-head
30
- include:
31
- - rvm: 2.6
32
- env: SPEC_RUBYOPT="--jit"
33
- - rvm: 2.7
34
- env: SPEC_RUBYOPT="--jit"
35
- - rvm: 3.0
36
- env: SPEC_RUBYOPT="--jit"
37
- - rvm: ruby-head
38
- env: SPEC_RUBYOPT="--jit"
39
- branches:
40
- only:
41
- - master