shipit-engine 0.18.0 → 0.18.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/shipit/api/deploys_controller.rb +2 -1
  3. data/app/controllers/shipit/deploys_controller.rb +8 -3
  4. data/app/controllers/shipit/rollbacks_controller.rb +3 -2
  5. data/app/controllers/shipit/tasks_controller.rb +8 -3
  6. data/app/models/shipit/deploy.rb +4 -3
  7. data/app/models/shipit/stack.rb +8 -3
  8. data/app/models/shipit/task.rb +7 -0
  9. data/db/migrate/20140226233935_create_baseline.rb +1 -1
  10. data/db/migrate/20150515190352_add_output_column_to_tasks.rb +1 -1
  11. data/db/migrate/20150518214944_add_ignore_ci_to_stack.rb +1 -1
  12. data/db/migrate/20150630154640_add_inaccessible_since_to_stacks.rb +1 -1
  13. data/db/migrate/20150708143032_add_rollback_when_complete_on_task.rb +1 -1
  14. data/db/migrate/20150814182557_add_env_to_tasks.rb +1 -1
  15. data/db/migrate/20150918190012_add_confirmations_to_tasks.rb +1 -1
  16. data/db/migrate/20151102201634_schema_constraints_cleanup.rb +1 -1
  17. data/db/migrate/20151103144716_convert_stacks_lock_reason_to_text.rb +1 -1
  18. data/db/migrate/20151112152112_reduce_tasks_type_size.rb +1 -1
  19. data/db/migrate/20151112152113_reduce_tasks_stats_size.rb +1 -1
  20. data/db/migrate/20151113151323_improve_indexes_on_tasks.rb +1 -1
  21. data/db/migrate/20160104151742_increase_tasks_type_size_back.rb +1 -1
  22. data/db/migrate/20160104151833_convert_sti_columns.rb +1 -1
  23. data/db/migrate/20160122165559_rename_hooks_url_in_delivery_url.rb +1 -1
  24. data/db/migrate/20160210183823_add_allow_concurrency_to_tasks.rb +1 -1
  25. data/db/migrate/20160303163611_create_shipit_commit_deployments.rb +1 -1
  26. data/db/migrate/20160303170913_create_shipit_commit_deployment_statuses.rb +1 -1
  27. data/db/migrate/20160303203940_add_encrypted_token_to_users.rb +1 -1
  28. data/db/migrate/20160324155046_add_started_at_and_ended_at_on_tasks.rb +1 -1
  29. data/db/migrate/20160426155146_add_index_for_stack_active_task.rb +1 -1
  30. data/db/migrate/20160502150713_add_estimated_deploy_duration_to_stacks.rb +1 -1
  31. data/db/migrate/20160526192650_reorder_active_tasks_index.rb +1 -1
  32. data/db/migrate/20160802092812_add_continuous_delivery_delayed_since_to_stacks.rb +1 -1
  33. data/db/migrate/20160822131405_add_locked_since_to_stacks.rb +1 -1
  34. data/lib/shipit/command.rb +1 -1
  35. data/lib/shipit/version.rb +1 -1
  36. data/test/controllers/deploys_controller_test.rb +3 -3
  37. data/test/controllers/rollbacks_controller_test.rb +1 -1
  38. data/test/controllers/tasks_controller_test.rb +7 -3
  39. data/test/dummy/db/test.sqlite3 +0 -0
  40. data/test/fixtures/shipit/tasks.yml +2 -0
  41. metadata +3 -5
  42. data/test/dummy/db/test.sqlite3-journal +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f13ba52ac100c1c0d4bf8d32359864ccca6c0e4
4
- data.tar.gz: 7ed436ab9d86d67a4501f7a68917fd8a625fe4dc
3
+ metadata.gz: 164e72e212fa74b62ae7adab49efea057f1d983a
4
+ data.tar.gz: c5fbe8b529b76c20298ea2394b79358cb3dd22be
5
5
  SHA512:
6
- metadata.gz: 329503af159a4b9eabcd4a01e4fc82d48ab44b5e75780fe3c3d7a4cf3e7850b6074f489be837ba3d06a009f3adaffd88b92ef97b28980bbf3cff5e5af0a663e2
7
- data.tar.gz: 3d5c1db15114c286e8d6196a92ca7ac38401b3ff5a1d86ab6adfeb1d8935e2cd964fe86046ee9cd15c98251b7428b9fc0c213612d68d6ab370a941c4049e75f9
6
+ metadata.gz: 2929a4f676679ea715b527c0ab62c22d63222cab8902c005a507ddd1e30d32246532039e7784c674af9daaf52c6ccdbab02488ca22ea847b59c2514f943499a9
7
+ data.tar.gz: 16fc66870a734dd2e2be52e3868417d32302a4ffb817064ac4d54334e152533e1021ab6b50e20f7dbb700f368dbbf3573258706d9618c27a97584c9d18be37de
@@ -11,7 +11,8 @@ module Shipit
11
11
  def create
12
12
  commit = stack.commits.by_sha(params.sha) || param_error!(:sha, 'Unknown revision')
13
13
  param_error!(:force, "Can't deploy a locked stack") if !params.force && stack.locked?
14
- render_resource stack.trigger_deploy(commit, current_user, env: params.env), status: :accepted
14
+ deploy = stack.trigger_deploy(commit, current_user, env: params.env, force: params.force)
15
+ render_resource deploy, status: :accepted
15
16
  end
16
17
  end
17
18
  end
@@ -20,10 +20,15 @@ module Shipit
20
20
  end
21
21
 
22
22
  def create
23
- return redirect_to new_stack_deploy_path(@stack, sha: @until_commit.sha) if !params[:force] && @stack.active_task?
24
-
25
- @deploy = @stack.trigger_deploy(@until_commit, current_user, env: deploy_params[:env])
23
+ @deploy = @stack.trigger_deploy(
24
+ @until_commit,
25
+ current_user,
26
+ env: deploy_params[:env],
27
+ force: params[:force].present?,
28
+ )
26
29
  respond_with(@deploy.stack, @deploy)
30
+ rescue Task::ConcurrentTaskRunning
31
+ redirect_to new_stack_deploy_path(@stack, sha: @until_commit.sha)
27
32
  end
28
33
 
29
34
  def rollback
@@ -4,9 +4,10 @@ module Shipit
4
4
  before_action :load_deploy
5
5
 
6
6
  def create
7
- return redirect_to rollback_stack_deploy_path(@stack, @deploy) if !params[:force] && @stack.active_task?
8
- @rollback = @deploy.trigger_rollback(current_user, env: rollback_params[:env])
7
+ @rollback = @deploy.trigger_rollback(current_user, env: rollback_params[:env], force: params[:force].present?)
9
8
  redirect_to stack_deploy_path(@stack, @rollback)
9
+ rescue Task::ConcurrentTaskRunning
10
+ redirect_to rollback_stack_deploy_path(@stack, @deploy)
10
11
  end
11
12
 
12
13
  private
@@ -28,10 +28,15 @@ module Shipit
28
28
  def create
29
29
  @definition = stack.find_task_definition(params[:definition_id])
30
30
 
31
- if @definition.allow_concurrency? || params[:force] || !@stack.active_task?
32
- @task = stack.trigger_task(params[:definition_id], current_user, env: task_params[:env])
31
+ begin
32
+ @task = stack.trigger_task(
33
+ params[:definition_id],
34
+ current_user,
35
+ env: task_params[:env],
36
+ force: params[:force].present?,
37
+ )
33
38
  redirect_to [stack, @task]
34
- else
39
+ rescue Task::ConcurrentTaskRunning
35
40
  redirect_to new_stack_tasks_path(stack, @definition)
36
41
  end
37
42
  end
@@ -37,7 +37,7 @@ module Shipit
37
37
 
38
38
  delegate :broadcast_update, :filter_deploy_envs, to: :stack
39
39
 
40
- def build_rollback(user = nil, env: nil)
40
+ def build_rollback(user = nil, env: nil, force: false)
41
41
  Rollback.new(
42
42
  user_id: user.try!(:id),
43
43
  stack_id: stack_id,
@@ -45,12 +45,13 @@ module Shipit
45
45
  since_commit: stack.last_deployed_commit,
46
46
  until_commit: until_commit,
47
47
  env: env.try!(:to_h) || {},
48
+ allow_concurrency: force,
48
49
  )
49
50
  end
50
51
 
51
52
  # Rolls the stack back to this deploy
52
- def trigger_rollback(user = AnonymousUser.new, env: nil)
53
- rollback = build_rollback(user, env: env)
53
+ def trigger_rollback(user = AnonymousUser.new, env: nil, force: false)
54
+ rollback = build_rollback(user, env: env, force: force)
54
55
  rollback.save!
55
56
  rollback.enqueue
56
57
 
@@ -81,7 +81,7 @@ module Shipit
81
81
  undeployed_commits_count > 0
82
82
  end
83
83
 
84
- def trigger_task(definition_id, user, env: nil)
84
+ def trigger_task(definition_id, user, env: nil, force: false)
85
85
  definition = find_task_definition(definition_id)
86
86
  env = env.try!(:to_h) || {}
87
87
 
@@ -96,18 +96,20 @@ module Shipit
96
96
  until_commit_id: commit.id,
97
97
  since_commit_id: commit.id,
98
98
  env: definition.filter_envs(env),
99
+ allow_concurrency: definition.allow_concurrency? || force,
99
100
  )
100
101
  task.enqueue
101
102
  task
102
103
  end
103
104
 
104
- def build_deploy(until_commit, user, env: nil)
105
+ def build_deploy(until_commit, user, env: nil, force: false)
105
106
  since_commit = last_deployed_commit.presence || commits.first
106
107
  deploys.build(
107
108
  user_id: user.id,
108
109
  until_commit: until_commit,
109
110
  since_commit: since_commit,
110
111
  env: filter_deploy_envs(env.try!(:to_h) || {}),
112
+ allow_concurrency: force,
111
113
  )
112
114
  end
113
115
 
@@ -144,7 +146,10 @@ module Shipit
144
146
  return
145
147
  end
146
148
 
147
- trigger_deploy(commit, Shipit.user, env: cached_deploy_spec.default_deploy_env)
149
+ begin
150
+ trigger_deploy(commit, Shipit.user, env: cached_deploy_spec.default_deploy_env)
151
+ rescue Task::ConcurrentTaskRunning
152
+ end
148
153
  end
149
154
 
150
155
  def schedule_merges
@@ -2,6 +2,8 @@ module Shipit
2
2
  class Task < ActiveRecord::Base
3
3
  include DeferredTouch
4
4
 
5
+ ConcurrentTaskRunning = Class.new(StandardError)
6
+
5
7
  PRESENCE_CHECK_TIMEOUT = 15
6
8
  ACTIVE_STATUSES = %w(pending running aborting).freeze
7
9
  COMPLETED_STATUSES = %w(success error failed flapping aborted).freeze
@@ -32,6 +34,7 @@ module Shipit
32
34
  scope :due_for_rollup, -> { completed.where(rolled_up: false).where('created_at <= ?', 1.hour.ago) }
33
35
 
34
36
  after_save :record_status_change
37
+ after_create :prevent_concurrency, unless: :allow_concurrency?
35
38
  after_commit :emit_hooks
36
39
 
37
40
  class << self
@@ -264,6 +267,10 @@ module Shipit
264
267
 
265
268
  private
266
269
 
270
+ def prevent_concurrency
271
+ raise ConcurrentTaskRunning if stack.tasks.active.exclusive.count > 1
272
+ end
273
+
267
274
  def status_key
268
275
  "shipit:task:#{id}"
269
276
  end
@@ -1,4 +1,4 @@
1
- class CreateBaseline < ActiveRecord::Migration
1
+ class CreateBaseline < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table "api_clients", force: :cascade do |t|
4
4
  t.text "permissions", limit: 65535
@@ -1,4 +1,4 @@
1
- class AddOutputColumnToTasks < ActiveRecord::Migration
1
+ class AddOutputColumnToTasks < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :tasks, :gzip_output, :binary, limit: 16777215
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddIgnoreCiToStack < ActiveRecord::Migration
1
+ class AddIgnoreCiToStack < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :stacks, :ignore_ci, :boolean
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddInaccessibleSinceToStacks < ActiveRecord::Migration
1
+ class AddInaccessibleSinceToStacks < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :stacks, :inaccessible_since, :datetime, default: nil
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddRollbackWhenCompleteOnTask < ActiveRecord::Migration
1
+ class AddRollbackWhenCompleteOnTask < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :tasks, :rollback_once_aborted, :boolean, default: false, null: false
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddEnvToTasks < ActiveRecord::Migration
1
+ class AddEnvToTasks < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :tasks, :env, :text
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddConfirmationsToTasks < ActiveRecord::Migration
1
+ class AddConfirmationsToTasks < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :tasks, :confirmations, :integer, default: 0, null: false
4
4
  end
@@ -1,4 +1,4 @@
1
- class SchemaConstraintsCleanup < ActiveRecord::Migration
1
+ class SchemaConstraintsCleanup < ActiveRecord::Migration[4.2]
2
2
  # Set reasonable size limit to a bunch of indexed string columns. They were defaulted to 255
3
3
  def change
4
4
  change_column :github_hooks, :event, :string, limit: 50, null: false # The biggest existing event is 27
@@ -1,4 +1,4 @@
1
- class ConvertStacksLockReasonToText < ActiveRecord::Migration
1
+ class ConvertStacksLockReasonToText < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  change_column :stacks, :lock_reason, :string, limit: 4096
4
4
  end
@@ -1,4 +1,4 @@
1
- class ReduceTasksTypeSize < ActiveRecord::Migration
1
+ class ReduceTasksTypeSize < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  change_column :tasks, :type, :string, limit: 10, null: true
4
4
  end
@@ -1,4 +1,4 @@
1
- class ReduceTasksStatsSize < ActiveRecord::Migration
1
+ class ReduceTasksStatsSize < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  change_column :tasks, :status, :string, null: false, default: 'pending', limit: 10
4
4
  end
@@ -1,4 +1,4 @@
1
- class ImproveIndexesOnTasks < ActiveRecord::Migration
1
+ class ImproveIndexesOnTasks < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_index :tasks, [:type, :stack_id, :status], name: :index_tasks_by_stack_and_status
4
4
  add_index :tasks, [:type, :stack_id, :parent_id], name: :index_tasks_by_stack_and_parent
@@ -1,4 +1,4 @@
1
- class IncreaseTasksTypeSizeBack < ActiveRecord::Migration
1
+ class IncreaseTasksTypeSizeBack < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  change_column :tasks, :type, :string, limit: 20, null: true
4
4
  end
@@ -1,4 +1,4 @@
1
- class ConvertStiColumns < ActiveRecord::Migration
1
+ class ConvertStiColumns < ActiveRecord::Migration[4.2]
2
2
  def up
3
3
  Shipit::Task.where(type: 'Task').update_all(type: 'Shipit::Task')
4
4
  Shipit::Task.where(type: 'Deploy').update_all(type: 'Shipit::Deploy')
@@ -1,4 +1,4 @@
1
- class RenameHooksUrlInDeliveryUrl < ActiveRecord::Migration
1
+ class RenameHooksUrlInDeliveryUrl < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  rename_column :hooks, :url, :delivery_url
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddAllowConcurrencyToTasks < ActiveRecord::Migration
1
+ class AddAllowConcurrencyToTasks < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :tasks, :allow_concurrency, :boolean, null: false, default: false
4
4
  end
@@ -1,4 +1,4 @@
1
- class CreateShipitCommitDeployments < ActiveRecord::Migration
1
+ class CreateShipitCommitDeployments < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :commit_deployments do |t|
4
4
  t.references :commit, foreign_key: true
@@ -1,4 +1,4 @@
1
- class CreateShipitCommitDeploymentStatuses < ActiveRecord::Migration
1
+ class CreateShipitCommitDeploymentStatuses < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  create_table :commit_deployment_statuses do |t|
4
4
  t.references :commit_deployment, index: true, foreign_key: true
@@ -1,4 +1,4 @@
1
- class AddEncryptedTokenToUsers < ActiveRecord::Migration
1
+ class AddEncryptedTokenToUsers < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :users, :encrypted_github_access_token, :string
4
4
  add_column :users, :encrypted_github_access_token_iv, :string
@@ -1,4 +1,4 @@
1
- class AddStartedAtAndEndedAtOnTasks < ActiveRecord::Migration
1
+ class AddStartedAtAndEndedAtOnTasks < ActiveRecord::Migration[4.2]
2
2
  def up
3
3
  add_column :tasks, :started_at, :datetime, null: true
4
4
  add_column :tasks, :ended_at, :datetime, null: true
@@ -1,4 +1,4 @@
1
- class AddIndexForStackActiveTask < ActiveRecord::Migration
1
+ class AddIndexForStackActiveTask < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_index :tasks, [:status, :stack_id, :allow_concurrency], name: :index_active_tasks
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddEstimatedDeployDurationToStacks < ActiveRecord::Migration
1
+ class AddEstimatedDeployDurationToStacks < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :stacks, :estimated_deploy_duration, :integer, null: false, default: 1
4
4
  end
@@ -1,4 +1,4 @@
1
- class ReorderActiveTasksIndex < ActiveRecord::Migration
1
+ class ReorderActiveTasksIndex < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  remove_index :tasks, name: :index_active_tasks
4
4
  add_index :tasks, %i(stack_id allow_concurrency status), name: :index_active_tasks
@@ -1,4 +1,4 @@
1
- class AddContinuousDeliveryDelayedSinceToStacks < ActiveRecord::Migration
1
+ class AddContinuousDeliveryDelayedSinceToStacks < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :stacks, :continuous_delivery_delayed_since, :datetime, null: true
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddLockedSinceToStacks < ActiveRecord::Migration
1
+ class AddLockedSinceToStacks < ActiveRecord::Migration[4.2]
2
2
  def change
3
3
  add_column :stacks, :locked_since, :datetime, null: true
4
4
  end
@@ -86,7 +86,7 @@ module Shipit
86
86
  FileUtils.mkdir_p(@chdir)
87
87
  with_full_path do
88
88
  begin
89
- @out, child_in, @pid = PTY.spawn(@env, *interpolated_arguments, chdir: @chdir)
89
+ @out, child_in, @pid = PTY.spawn(@env.stringify_keys, *interpolated_arguments, chdir: @chdir)
90
90
  child_in.close
91
91
  rescue Errno::ENOENT
92
92
  raise NotFound, "#{Shellwords.split(interpolated_arguments.first).first}: command not found"
@@ -1,3 +1,3 @@
1
1
  module Shipit
2
- VERSION = '0.18.0'.freeze
2
+ VERSION = '0.18.1'.freeze
3
3
  end
@@ -32,7 +32,7 @@ module Shipit
32
32
  end
33
33
 
34
34
  test ":new shows a warning if a deploy is already running" do
35
- shipit_deploys(:shipit_running).update_column(:status, 'running')
35
+ shipit_deploys(:shipit_running).update!(allow_concurrency: false, status: 'running')
36
36
 
37
37
  get :new, params: {stack_id: @stack.to_param, sha: @commit.sha}
38
38
  assert_response :success
@@ -70,7 +70,7 @@ module Shipit
70
70
  end
71
71
 
72
72
  test ":create redirect back to :new with a warning if there is an active deploy" do
73
- shipit_deploys(:shipit_running).update_column(:status, 'running')
73
+ shipit_deploys(:shipit_running).update!(allow_concurrency: false, status: 'running')
74
74
 
75
75
  assert_no_difference '@stack.deploys.count' do
76
76
  post :create, params: {stack_id: @stack.to_param, deploy: {until_commit_id: @commit.id}}
@@ -90,7 +90,7 @@ module Shipit
90
90
  end
91
91
 
92
92
  test ":rollback shows a warning if a deploy is already running" do
93
- shipit_deploys(:shipit_running).update_column(:status, 'running')
93
+ shipit_deploys(:shipit_running).update!(allow_concurrency: false, status: 'running')
94
94
 
95
95
  get :rollback, params: {stack_id: @stack.to_param, id: @deploy.id}
96
96
  assert_response :success
@@ -39,7 +39,7 @@ module Shipit
39
39
  end
40
40
 
41
41
  test ":create redirects back to the :new page if there is an active deploy" do
42
- shipit_deploys(:shipit_running).update_column(:status, 'running')
42
+ shipit_deploys(:shipit_running).update!(allow_concurrency: false, status: 'running')
43
43
  assert_no_difference '@stack.deploys.count' do
44
44
  post :create, params: {stack_id: @stack.to_param, rollback: {parent_id: @deploy.id}}
45
45
  end
@@ -16,15 +16,19 @@ module Shipit
16
16
  end
17
17
 
18
18
  test "tasks defined in the shipit.yml can't be triggered if the stack is being deployed" do
19
- assert @stack.active_task?
19
+ shipit_deploys(:shipit_running).update!(allow_concurrency: false, status: 'running')
20
+
21
+ assert_predicate @stack, :active_task?
20
22
  assert_no_difference -> { @stack.tasks.count } do
21
23
  post :create, params: {stack_id: @stack, definition_id: @definition.id}
22
24
  end
23
25
  assert_redirected_to new_stack_tasks_path(@stack, @definition)
24
26
  end
25
27
 
26
- test "tasks defined in the shipit.yml can be triggered anyway if force apram is present" do
27
- assert @stack.active_task?
28
+ test "tasks defined in the shipit.yml can be triggered anyway if force param is present" do
29
+ shipit_deploys(:shipit_running).update!(allow_concurrency: false, status: 'running')
30
+
31
+ assert_predicate @stack, :active_task?
28
32
  assert_difference -> { @stack.tasks.count } do
29
33
  post :create, params: {stack_id: @stack, definition_id: @definition.id, force: 'true'}
30
34
  end
Binary file
@@ -61,6 +61,7 @@ shipit_pending:
61
61
  additions: 432
62
62
  deletions: 406
63
63
  created_at: <%= (60 - 4).minutes.ago.to_s(:db) %>
64
+ allow_concurrency: true
64
65
 
65
66
  shipit_running:
66
67
  id: 5
@@ -74,6 +75,7 @@ shipit_running:
74
75
  deletions: 342
75
76
  created_at: <%= (60 - 5).minutes.ago.to_s(:db) %>
76
77
  started_at: <%= (60 - 5).minutes.ago.to_s(:db) %>
78
+ allow_concurrency: true
77
79
 
78
80
  shipit_complete:
79
81
  id: 6
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shipit-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean Boussier
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-04 00:00:00.000000000 Z
11
+ date: 2017-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -776,7 +776,6 @@ files:
776
776
  - test/dummy/db/schema.rb
777
777
  - test/dummy/db/seeds.rb
778
778
  - test/dummy/db/test.sqlite3
779
- - test/dummy/db/test.sqlite3-journal
780
779
  - test/dummy/public/404.html
781
780
  - test/dummy/public/422.html
782
781
  - test/dummy/public/500.html
@@ -879,7 +878,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
879
878
  version: '0'
880
879
  requirements: []
881
880
  rubyforge_project:
882
- rubygems_version: 2.4.5.1
881
+ rubygems_version: 2.6.10
883
882
  signing_key:
884
883
  specification_version: 4
885
884
  summary: Application deployment software
@@ -956,7 +955,6 @@ test_files:
956
955
  - test/dummy/db/schema.rb
957
956
  - test/dummy/db/seeds.rb
958
957
  - test/dummy/db/test.sqlite3
959
- - test/dummy/db/test.sqlite3-journal
960
958
  - test/dummy/public/404.html
961
959
  - test/dummy/public/422.html
962
960
  - test/dummy/public/500.html
Binary file