diff --git a/lib/producer/core/cli.rb b/lib/producer/core/cli.rb index 98d1146..6478323 100644 --- a/lib/producer/core/cli.rb +++ b/lib/producer/core/cli.rb @@ -45,6 +45,7 @@ module Producer def run(worker: Worker.new(@env)) evaluate_recipes.each { |recipe| worker.process recipe.tasks } + ensure @env.cleanup end diff --git a/spec/producer/core/cli_spec.rb b/spec/producer/core/cli_spec.rb index dbde3c3..20384e6 100644 --- a/spec/producer/core/cli_spec.rb +++ b/spec/producer/core/cli_spec.rb @@ -152,6 +152,15 @@ module Producer::Core expect(cli.env).to receive :cleanup cli.run end + + context 'on error' do + let(:recipe_file) { fixture_path_for 'recipes/raise.rb' } + + it 'cleans up the env' do + expect(cli.env).to receive :cleanup + cli.run rescue nil + end + end end describe '#evaluate_recipes' do