Skip to content

Commit 1294e02

Browse files
initial work
1 parent 85442aa commit 1294e02

File tree

5 files changed

+21
-3
lines changed

5 files changed

+21
-3
lines changed

app/controllers/shipit/rollbacks_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def load_deploy
2727
end
2828

2929
def rollback_params
30-
params.require(:rollback).permit(:parent_id, env: @stack.deploy_variables.map(&:name))
30+
params.require(:rollback).permit(:parent_id, env: @stack.rollback_variables.map(&:name))
3131
end
3232
end
3333
end

app/models/shipit/deploy_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,15 @@ def rollback_steps!
139139
rollback_steps || cant_detect!(:rollback)
140140
end
141141

142+
def rollback_variables
143+
if config.dig('rollback', 'variables').present?
144+
Array.wrap(config('rollback', 'variables')).map(&VariableDefinition.method(:new))
145+
else
146+
# For backwards compatibility, fallback to using deploy_variables if no explicit rollback variables are set
147+
deploy_variables
148+
end
149+
end
150+
142151
def retries_on_rollback
143152
config('rollback', 'retries') { nil }
144153
end
@@ -166,6 +175,10 @@ def filter_deploy_envs(env)
166175
EnvironmentVariables.with(env).permit(deploy_variables)
167176
end
168177

178+
def filter_rollback_envs(env)
179+
EnvironmentVariables.with(env).permit(rollback_variables)
180+
end
181+
169182
def review_checklist
170183
(config('review', 'checklist') || discover_review_checklist || []).map(&:strip).select(&:present?)
171184
end

app/models/shipit/deploy_spec/file_system.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ def cacheable_config
7878
},
7979
'rollback' => {
8080
'override' => rollback_steps,
81-
'retries' => retries_on_rollback
81+
'retries' => retries_on_rollback,
82+
'variables' => rollback_variables.map(&:to_h)
8283
},
8384
'fetch' => fetch_deployed_revision_steps,
8485
'tasks' => cacheable_tasks

app/models/shipit/rollback.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ def report_complete!
3838
complete!
3939
end
4040

41+
def variables
42+
stack.rollback_variables
43+
end
44+
4145
private
4246

4347
def update_release_status

app/models/shipit/stack.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -519,7 +519,7 @@ def self.from_param!(param)
519519
end
520520

521521
delegate :plugins, :task_definitions, :hidden_statuses, :required_statuses, :soft_failing_statuses,
522-
:blocking_statuses, :deploy_variables, :filter_task_envs, :filter_deploy_envs,
522+
:blocking_statuses, :deploy_variables, :rollback_variables, :filter_task_envs, :filter_deploy_envs,
523523
:maximum_commits_per_deploy, :pause_between_deploys, :retries_on_deploy, :retries_on_rollback,
524524
to: :cached_deploy_spec
525525

0 commit comments

Comments
 (0)