shipit-engine 0.38.0 → 0.40.0
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 +4 -4
- data/README.md +48 -4
- data/Rakefile +2 -1
- data/app/assets/javascripts/shipit/continuous_delivery_schedule.js.coffee +15 -0
- data/app/controllers/concerns/shipit/active_model_serializers_patch.rb +1 -0
- data/app/controllers/concerns/shipit/api/cacheable.rb +1 -0
- data/app/controllers/concerns/shipit/api/paginable.rb +3 -2
- data/app/controllers/concerns/shipit/api/rendering.rb +1 -0
- data/app/controllers/concerns/shipit/authentication.rb +1 -0
- data/app/controllers/concerns/shipit/pagination.rb +3 -2
- data/app/controllers/shipit/api/base_controller.rb +12 -10
- data/app/controllers/shipit/api/ccmenu_controller.rb +2 -1
- data/app/controllers/shipit/api/commits_controller.rb +2 -3
- data/app/controllers/shipit/api/deploys_controller.rb +6 -1
- data/app/controllers/shipit/api/hooks_controller.rb +4 -3
- data/app/controllers/shipit/api/locks_controller.rb +1 -0
- data/app/controllers/shipit/api/merge_requests_controller.rb +6 -5
- data/app/controllers/shipit/api/outputs_controller.rb +1 -0
- data/app/controllers/shipit/api/release_statuses_controller.rb +2 -1
- data/app/controllers/shipit/api/rollbacks_controller.rb +1 -0
- data/app/controllers/shipit/api/stacks_controller.rb +15 -14
- data/app/controllers/shipit/api/tasks_controller.rb +6 -5
- data/app/controllers/shipit/api_clients_controller.rb +6 -7
- data/app/controllers/shipit/ccmenu_url_controller.rb +3 -2
- data/app/controllers/shipit/commit_checks_controller.rb +2 -1
- data/app/controllers/shipit/commits_controller.rb +1 -0
- data/app/controllers/shipit/continuous_delivery_schedules_controller.rb +42 -0
- data/app/controllers/shipit/deploys_controller.rb +6 -5
- data/app/controllers/shipit/github_authentication_controller.rb +6 -0
- data/app/controllers/shipit/merge_requests_controller.rb +1 -0
- data/app/controllers/shipit/merge_status_controller.rb +30 -26
- data/app/controllers/shipit/release_statuses_controller.rb +1 -0
- data/app/controllers/shipit/repositories_controller.rb +4 -7
- data/app/controllers/shipit/rollbacks_controller.rb +2 -1
- data/app/controllers/shipit/shipit_controller.rb +1 -0
- data/app/controllers/shipit/stacks_controller.rb +27 -31
- data/app/controllers/shipit/status_controller.rb +1 -0
- data/app/controllers/shipit/tasks_controller.rb +3 -1
- data/app/controllers/shipit/webhooks_controller.rb +2 -1
- data/app/helpers/shipit/api_clients_helper.rb +1 -0
- data/app/helpers/shipit/chunks_helper.rb +3 -1
- data/app/helpers/shipit/deploys_helper.rb +7 -3
- data/app/helpers/shipit/github_url_helper.rb +5 -4
- data/app/helpers/shipit/merge_status_helper.rb +1 -0
- data/app/helpers/shipit/shipit_helper.rb +11 -10
- data/app/helpers/shipit/stacks_helper.rb +10 -11
- data/app/helpers/shipit/tasks_helper.rb +2 -1
- data/app/jobs/shipit/background_job/unique.rb +3 -2
- data/app/jobs/shipit/background_job.rb +9 -1
- data/app/jobs/shipit/cache_deploy_spec_job.rb +2 -1
- data/app/jobs/shipit/chunk_rollup_job.rb +1 -0
- data/app/jobs/shipit/clear_git_cache_job.rb +1 -0
- data/app/jobs/shipit/continuous_delivery_job.rb +5 -0
- data/app/jobs/shipit/create_on_github_job.rb +1 -0
- data/app/jobs/shipit/create_release_statuses_job.rb +2 -0
- data/app/jobs/shipit/deferred_touch_job.rb +1 -0
- data/app/jobs/shipit/deliver_hook_job.rb +1 -0
- data/app/jobs/shipit/destroy_job.rb +1 -0
- data/app/jobs/shipit/destroy_repository_job.rb +1 -0
- data/app/jobs/shipit/destroy_stack_job.rb +36 -15
- data/app/jobs/shipit/emit_event_job.rb +1 -0
- data/app/jobs/shipit/fetch_commit_stats_job.rb +1 -0
- data/app/jobs/shipit/fetch_deployed_revision_job.rb +1 -0
- data/app/jobs/shipit/github_sync_job.rb +4 -2
- data/app/jobs/shipit/mark_deploy_healthy_job.rb +1 -0
- data/app/jobs/shipit/perform_commit_checks_job.rb +1 -0
- data/app/jobs/shipit/perform_task_job.rb +1 -0
- data/app/jobs/shipit/process_merge_requests_job.rb +2 -0
- data/app/jobs/shipit/purge_old_deliveries_job.rb +1 -0
- data/app/jobs/shipit/reap_dead_tasks_job.rb +1 -0
- data/app/jobs/shipit/refresh_check_runs_job.rb +1 -0
- data/app/jobs/shipit/refresh_github_user_job.rb +1 -0
- data/app/jobs/shipit/refresh_merge_request_job.rb +1 -0
- data/app/jobs/shipit/refresh_statuses_job.rb +1 -0
- data/app/jobs/shipit/setup_github_hook_job.rb +1 -0
- data/app/jobs/shipit/update_estimated_deploy_duration_job.rb +1 -0
- data/app/jobs/shipit/update_github_last_deployed_ref_job.rb +6 -7
- data/app/models/concerns/shipit/deferred_touch.rb +5 -2
- data/app/models/shipit/anonymous_user.rb +4 -5
- data/app/models/shipit/api_client.rb +5 -3
- data/app/models/shipit/application_record.rb +1 -0
- data/app/models/shipit/check_run.rb +7 -6
- data/app/models/shipit/command_line_user.rb +4 -5
- data/app/models/shipit/commit.rb +46 -32
- data/app/models/shipit/commit_checks.rb +4 -2
- data/app/models/shipit/commit_deployment.rb +7 -5
- data/app/models/shipit/commit_deployment_status.rb +5 -3
- data/app/models/shipit/commit_message.rb +2 -0
- data/app/models/shipit/continuous_delivery_schedule.rb +84 -0
- data/app/models/shipit/delivery.rb +5 -4
- data/app/models/shipit/deploy.rb +46 -26
- data/app/models/shipit/deploy_spec/bundler_discovery.rb +3 -1
- data/app/models/shipit/deploy_spec/capistrano_discovery.rb +1 -0
- data/app/models/shipit/deploy_spec/file_system.rb +48 -17
- data/app/models/shipit/deploy_spec/kubernetes_discovery.rb +4 -3
- data/app/models/shipit/deploy_spec/lerna_discovery.rb +32 -31
- data/app/models/shipit/deploy_spec/npm_discovery.rb +18 -13
- data/app/models/shipit/deploy_spec/pypi_discovery.rb +5 -4
- data/app/models/shipit/deploy_spec/rubygems_discovery.rb +1 -0
- data/app/models/shipit/deploy_spec.rb +25 -30
- data/app/models/shipit/deploy_stats.rb +6 -1
- data/app/models/shipit/duration.rb +5 -3
- data/app/models/shipit/ephemeral_commit_checks.rb +8 -7
- data/app/models/shipit/github_hook.rb +1 -0
- data/app/models/shipit/github_status.rb +1 -0
- data/app/models/shipit/hook.rb +9 -7
- data/app/models/shipit/membership.rb +1 -0
- data/app/models/shipit/merge_request.rb +26 -16
- data/app/models/shipit/output_chunk.rb +1 -0
- data/app/models/shipit/provisioning_handler.rb +1 -0
- data/app/models/shipit/pull_request.rb +2 -2
- data/app/models/shipit/record.rb +1 -0
- data/app/models/shipit/release_status.rb +4 -3
- data/app/models/shipit/repository.rb +12 -11
- data/app/models/shipit/review_stack.rb +3 -1
- data/app/models/shipit/review_stack_provisioning_queue.rb +2 -2
- data/app/models/shipit/rollback.rb +2 -0
- data/app/models/shipit/stack.rb +71 -60
- data/app/models/shipit/status/common.rb +1 -0
- data/app/models/shipit/status/group.rb +5 -3
- data/app/models/shipit/status/missing.rb +2 -1
- data/app/models/shipit/status/unknown.rb +1 -0
- data/app/models/shipit/status.rb +5 -4
- data/app/models/shipit/task.rb +40 -31
- data/app/models/shipit/task_definition.rb +10 -7
- data/app/models/shipit/task_execution_strategy/default.rb +13 -13
- data/app/models/shipit/team.rb +13 -12
- data/app/models/shipit/undeployed_commit.rb +8 -3
- data/app/models/shipit/unlimited_api_client.rb +2 -2
- data/app/models/shipit/user.rb +23 -16
- data/app/models/shipit/variable_definition.rb +2 -1
- data/app/models/shipit/webhooks/handlers/check_suite_handler.rb +1 -0
- data/app/models/shipit/webhooks/handlers/handler.rb +1 -0
- data/app/models/shipit/webhooks/handlers/membership_handler.rb +1 -0
- data/app/models/shipit/webhooks/handlers/pull_request/assigned_handler.rb +10 -10
- data/app/models/shipit/webhooks/handlers/pull_request/closed_handler.rb +1 -1
- data/app/models/shipit/webhooks/handlers/pull_request/edited_handler.rb +10 -10
- data/app/models/shipit/webhooks/handlers/pull_request/label_capturing_handler.rb +2 -2
- data/app/models/shipit/webhooks/handlers/pull_request/labeled_handler.rb +2 -2
- data/app/models/shipit/webhooks/handlers/pull_request/reopened_handler.rb +1 -1
- data/app/models/shipit/webhooks/handlers/pull_request/review_stack_adapter.rb +3 -3
- data/app/models/shipit/webhooks/handlers/pull_request/unlabeled_handler.rb +1 -1
- data/app/models/shipit/webhooks/handlers/push_handler.rb +2 -1
- data/app/models/shipit/webhooks/handlers/status_handler.rb +1 -0
- data/app/models/shipit/webhooks.rb +3 -2
- data/app/serializers/concerns/shipit/conditional_attributes.rb +1 -0
- data/app/serializers/shipit/anonymous_user_serializer.rb +1 -0
- data/app/serializers/shipit/command_line_user_serializer.rb +1 -0
- data/app/serializers/shipit/commit_serializer.rb +2 -1
- data/app/serializers/shipit/deploy_serializer.rb +1 -0
- data/app/serializers/shipit/hook_serializer.rb +1 -0
- data/app/serializers/shipit/merge_request_serializer.rb +2 -1
- data/app/serializers/shipit/rollback_serializer.rb +1 -0
- data/app/serializers/shipit/short_commit_serializer.rb +1 -0
- data/app/serializers/shipit/stack_serializer.rb +4 -3
- data/app/serializers/shipit/tail_task_serializer.rb +4 -1
- data/app/serializers/shipit/task_serializer.rb +1 -0
- data/app/serializers/shipit/user_serializer.rb +1 -0
- data/app/validators/ascii_only_validator.rb +4 -3
- data/app/validators/subset_validator.rb +1 -0
- data/app/views/shipit/_variables.html.erb +1 -1
- data/app/views/shipit/ccmenu/project.xml.builder +2 -1
- data/app/views/shipit/continuous_delivery_schedules/show.html.erb +59 -0
- data/app/views/shipit/merge_status/failure.html.erb +1 -1
- data/app/views/shipit/missing_settings.html.erb +1 -1
- data/app/views/shipit/stacks/_settings_form.erb +1 -0
- data/config/initializers/inflections.rb +1 -0
- data/config/locales/en.yml +1 -0
- data/config/routes.rb +21 -18
- data/config/secrets.development.example.yml +1 -1
- data/config/secrets.development.shopify.yml +1 -1
- data/db/migrate/20240821003007_add_continuous_delivery_schedules.rb +13 -0
- data/db/migrate/20250207203053_embiggen_github_ids.rb +8 -0
- data/lib/shipit/cast_value.rb +1 -0
- data/lib/shipit/command.rb +29 -9
- data/lib/shipit/commands.rb +4 -2
- data/lib/shipit/csv_serializer.rb +3 -0
- data/lib/shipit/deploy_commands.rb +2 -1
- data/lib/shipit/engine.rb +6 -5
- data/lib/shipit/environment_variables.rb +2 -0
- data/lib/shipit/first_parent_commits_iterator.rb +2 -3
- data/lib/shipit/flock.rb +11 -9
- data/lib/shipit/github_app.rb +14 -16
- data/lib/shipit/github_http_cache_middleware.rb +1 -0
- data/lib/shipit/null_serializer.rb +1 -0
- data/lib/shipit/octokit_check_runs.rb +2 -3
- data/lib/shipit/octokit_iterator.rb +2 -0
- data/lib/shipit/paginator.rb +1 -0
- data/lib/shipit/rollback_commands.rb +2 -1
- data/lib/shipit/same_site_cookie_middleware.rb +1 -0
- data/lib/shipit/simple_message_verifier.rb +1 -0
- data/lib/shipit/stack_commands.rb +35 -27
- data/lib/shipit/stat.rb +1 -0
- data/lib/shipit/task_commands.rb +7 -6
- data/lib/shipit/version.rb +2 -1
- data/lib/shipit.rb +30 -17
- data/lib/tasks/cron.rake +2 -1
- data/lib/tasks/dev.rake +3 -2
- data/lib/tasks/shipit.rake +3 -2
- data/lib/tasks/teams.rake +3 -2
- data/test/controllers/api/base_controller_test.rb +1 -0
- data/test/controllers/api/ccmenu_controller_test.rb +4 -3
- data/test/controllers/api/commits_controller_test.rb +1 -0
- data/test/controllers/api/deploys_controller_test.rb +26 -1
- data/test/controllers/api/hooks_controller_test.rb +6 -5
- data/test/controllers/api/locks_controller_test.rb +1 -0
- data/test/controllers/api/merge_requests_controller_test.rb +1 -0
- data/test/controllers/api/outputs_controller_test.rb +1 -0
- data/test/controllers/api/release_statuses_controller_test.rb +4 -3
- data/test/controllers/api/rollback_controller_test.rb +3 -2
- data/test/controllers/api/stacks_controller_test.rb +13 -12
- data/test/controllers/api/tasks_controller_test.rb +7 -6
- data/test/controllers/api_clients_controller_test.rb +10 -10
- data/test/controllers/ccmenu_controller_test.rb +1 -0
- data/test/controllers/commit_checks_controller_test.rb +1 -0
- data/test/controllers/commits_controller_test.rb +9 -8
- data/test/controllers/continuous_delivery_schedules_controller_test.rb +66 -0
- data/test/controllers/deploys_controller_test.rb +4 -2
- data/test/controllers/github_authentication_controller_test.rb +6 -4
- data/test/controllers/merge_requests_controller_test.rb +1 -0
- data/test/controllers/merge_status_controller_test.rb +5 -4
- data/test/controllers/release_statuses_controller_test.rb +1 -0
- data/test/controllers/repositories_controller_test.rb +6 -5
- data/test/controllers/rollbacks_controller_test.rb +3 -2
- data/test/controllers/stacks_controller_test.rb +8 -6
- data/test/controllers/status_controller_test.rb +1 -0
- data/test/controllers/tasks_controller_test.rb +13 -5
- data/test/controllers/webhooks_controller_test.rb +10 -9
- data/test/dummy/config/application.rb +2 -1
- data/test/dummy/config/initializers/0_load_development_secrets.rb +2 -2
- data/test/dummy/config/secrets.development.json +3 -0
- data/test/dummy/config/secrets.test.json +21 -0
- data/test/dummy/db/schema.rb +33 -6
- data/test/fixtures/shipit/commits.yml +7 -7
- data/test/fixtures/shipit/stacks.yml +4 -10
- data/test/fixtures/shipit/tasks.yml +3 -3
- data/test/helpers/api_helper.rb +2 -3
- data/test/helpers/fixture_aliases_helper.rb +1 -0
- data/test/helpers/hooks_helper.rb +1 -0
- data/test/helpers/json_helper.rb +4 -3
- data/test/helpers/links_helper.rb +2 -1
- data/test/helpers/payloads_helper.rb +1 -0
- data/test/helpers/queries_helper.rb +4 -3
- data/test/jobs/cache_deploy_spec_job_test.rb +3 -2
- data/test/jobs/chunk_rollup_job_test.rb +3 -2
- data/test/jobs/deliver_hook_job_test.rb +1 -0
- data/test/jobs/destroy_repository_job_test.rb +1 -0
- data/test/jobs/destroy_stack_job_test.rb +12 -0
- data/test/jobs/emit_event_job_test.rb +1 -0
- data/test/jobs/fetch_commit_stats_job_test.rb +1 -0
- data/test/jobs/fetch_deployed_revision_job_test.rb +1 -0
- data/test/jobs/github_sync_job_test.rb +22 -21
- data/test/jobs/mark_deploy_healthy_job_test.rb +1 -0
- data/test/jobs/perform_task_job_test.rb +3 -3
- data/test/jobs/process_merge_requests_job_test.rb +7 -6
- data/test/jobs/purge_old_deliveries_job_test.rb +1 -0
- data/test/jobs/reap_dead_tasks_job_test.rb +1 -0
- data/test/jobs/refresh_github_user_job_test.rb +1 -0
- data/test/jobs/refresh_status_job_test.rb +1 -0
- data/test/jobs/shipit/background_job_test.rb +35 -0
- data/test/jobs/shipit/continuous_delivery_job_test.rb +31 -0
- data/test/jobs/unique_job_test.rb +3 -1
- data/test/jobs/update_github_last_deployed_ref_job_test.rb +1 -0
- data/test/middleware/same_site_cookie_middleware_test.rb +2 -2
- data/test/models/api_client_test.rb +1 -0
- data/test/models/commit_checks_test.rb +2 -1
- data/test/models/commit_deployment_status_test.rb +2 -2
- data/test/models/commit_deployment_test.rb +4 -3
- data/test/models/commits_test.rb +72 -70
- data/test/models/delivery_test.rb +3 -2
- data/test/models/deploy_spec_test.rb +113 -109
- data/test/models/deploy_stats_test.rb +1 -0
- data/test/models/deploys_test.rb +65 -56
- data/test/models/duration_test.rb +1 -1
- data/test/models/github_hook_test.rb +1 -0
- data/test/models/hook_test.rb +7 -4
- data/test/models/membership_test.rb +1 -0
- data/test/models/merge_request_test.rb +26 -20
- data/test/models/release_statuses_test.rb +2 -1
- data/test/models/rollbacks_test.rb +4 -3
- data/test/models/shipit/check_run_test.rb +16 -15
- data/test/models/shipit/continuous_delivery_schedule_test.rb +109 -0
- data/test/models/shipit/deploy_spec/file_system_test.rb +54 -10
- data/test/models/shipit/pull_request_test.rb +9 -9
- data/test/models/shipit/repository_test.rb +3 -2
- data/test/models/shipit/review_stack_provisioning_queue_test.rb +2 -2
- data/test/models/shipit/{stacks_test.rb → stack_test.rb} +48 -34
- data/test/models/shipit/webhooks/handlers/pull_request/closed_handler_test.rb +36 -34
- data/test/models/shipit/webhooks/handlers/pull_request/label_capturing_handler_test.rb +28 -28
- data/test/models/shipit/webhooks/handlers/pull_request/labeled_handler_test.rb +42 -42
- data/test/models/shipit/webhooks/handlers/pull_request/opened_handler_test.rb +33 -33
- data/test/models/shipit/webhooks/handlers/pull_request/reopened_handler_test.rb +37 -37
- data/test/models/shipit/webhooks/handlers/pull_request/review_stack_adapter_test.rb +1 -1
- data/test/models/shipit/webhooks/handlers/pull_request/unlabeled_handler_test.rb +44 -42
- data/test/models/shipit/webhooks/handlers_test.rb +1 -0
- data/test/models/status/group_test.rb +3 -2
- data/test/models/status/missing_test.rb +1 -0
- data/test/models/status_test.rb +2 -1
- data/test/models/task_definitions_test.rb +7 -6
- data/test/models/tasks_test.rb +5 -4
- data/test/models/team_test.rb +5 -4
- data/test/models/undeployed_commits_test.rb +10 -9
- data/test/models/users_test.rb +29 -20
- data/test/test_command_integration.rb +1 -1
- data/test/test_helper.rb +12 -10
- data/test/unit/anonymous_user_serializer_test.rb +1 -0
- data/test/unit/command_test.rb +10 -1
- data/test/unit/commands_test.rb +1 -0
- data/test/unit/commit_serializer_test.rb +1 -0
- data/test/unit/csv_serializer_test.rb +3 -2
- data/test/unit/deploy_commands_test.rb +33 -23
- data/test/unit/deploy_serializer_test.rb +1 -0
- data/test/unit/environment_variables_test.rb +2 -1
- data/test/unit/github_app_test.rb +11 -10
- data/test/unit/github_apps_test.rb +19 -18
- data/test/unit/github_url_helper_test.rb +1 -0
- data/test/unit/line_buffer_test.rb +1 -1
- data/test/unit/rollback_commands_test.rb +2 -1
- data/test/unit/shipit_helper_test.rb +1 -0
- data/test/unit/shipit_test.rb +47 -1
- data/test/unit/user_serializer_test.rb +1 -0
- data/test/unit/variable_definition_test.rb +4 -3
- metadata +61 -47
@@ -1,11 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
|
4
5
|
module Shipit
|
5
6
|
class DeploySpecTest < ActiveSupport::TestCase
|
6
7
|
setup do
|
7
8
|
@app_dir = '/tmp/'
|
8
|
-
@
|
9
|
+
@stack = shipit_stacks(:shipit)
|
10
|
+
@spec = DeploySpec::FileSystem.new(@app_dir, @stack)
|
9
11
|
@spec.stubs(:load_config).returns({})
|
10
12
|
end
|
11
13
|
|
@@ -33,8 +35,8 @@ module Shipit
|
|
33
35
|
end
|
34
36
|
|
35
37
|
test '#dependencies_steps returns `dependencies.override` if present' do
|
36
|
-
@spec.stubs(:load_config).returns('dependencies' => { 'override' => %w
|
37
|
-
assert_equal %w
|
38
|
+
@spec.stubs(:load_config).returns('dependencies' => { 'override' => %w[foo bar baz] })
|
39
|
+
assert_equal %w[foo bar baz], @spec.dependencies_steps
|
38
40
|
end
|
39
41
|
|
40
42
|
test '#dependencies_steps returns `bundle install` if a `Gemfile` is present' do
|
@@ -76,7 +78,7 @@ module Shipit
|
|
76
78
|
|
77
79
|
test '#bundle_install use `dependencies.bundler.without` if present to build the --without argument' do
|
78
80
|
@spec.stubs(:gemfile_lock_exists?).returns(true)
|
79
|
-
@spec.stubs(:load_config).returns('dependencies' => { 'bundler' => { 'without' => %w
|
81
|
+
@spec.stubs(:load_config).returns('dependencies' => { 'bundler' => { 'without' => %w[some custom groups] } })
|
80
82
|
command = %(
|
81
83
|
bundle install
|
82
84
|
--frozen
|
@@ -89,13 +91,13 @@ module Shipit
|
|
89
91
|
end
|
90
92
|
|
91
93
|
test '#bundle_install has --frozen option if Gemfile.lock is present' do
|
92
|
-
@spec.stubs(:load_config).returns('dependencies' => { 'bundler' => { 'without' => %w
|
94
|
+
@spec.stubs(:load_config).returns('dependencies' => { 'bundler' => { 'without' => %w[some custom groups] } })
|
93
95
|
@spec.stubs(:gemfile_lock_exists?).returns(true)
|
94
96
|
assert @spec.bundle_install.last.include?('--frozen')
|
95
97
|
end
|
96
98
|
|
97
99
|
test '#bundle_install does not have --frozen option if Gemfile.lock is not present' do
|
98
|
-
@spec.stubs(:load_config).returns('dependencies' => { 'bundler' => { 'without' => %w
|
100
|
+
@spec.stubs(:load_config).returns('dependencies' => { 'bundler' => { 'without' => %w[some custom groups] } })
|
99
101
|
@spec.stubs(:gemfile_lock_exists?).returns(false)
|
100
102
|
refute @spec.bundle_install.last.include?('--frozen')
|
101
103
|
end
|
@@ -113,8 +115,8 @@ module Shipit
|
|
113
115
|
end
|
114
116
|
|
115
117
|
test '#deploy_steps returns `deploy.override` if present' do
|
116
|
-
@spec.stubs(:load_config).returns('deploy' => { 'override' => %w
|
117
|
-
assert_equal %w
|
118
|
+
@spec.stubs(:load_config).returns('deploy' => { 'override' => %w[foo bar baz] })
|
119
|
+
assert_equal %w[foo bar baz], @spec.deploy_steps
|
118
120
|
end
|
119
121
|
|
120
122
|
test '#deploy_steps returns `cap $ENVIRONMENT deploy` if a `Capfile` is present' do
|
@@ -127,8 +129,8 @@ module Shipit
|
|
127
129
|
@spec.stubs(:load_config).returns(
|
128
130
|
'kubernetes' => {
|
129
131
|
'namespace' => 'foo',
|
130
|
-
'context' => 'bar'
|
131
|
-
}
|
132
|
+
'context' => 'bar'
|
133
|
+
}
|
132
134
|
)
|
133
135
|
assert_equal ["kubernetes-deploy --max-watch-seconds 900 foo bar"], @spec.deploy_steps
|
134
136
|
end
|
@@ -138,8 +140,8 @@ module Shipit
|
|
138
140
|
'kubernetes' => {
|
139
141
|
'namespace' => 'foo',
|
140
142
|
'context' => 'bar',
|
141
|
-
'timeout' => false
|
142
|
-
}
|
143
|
+
'timeout' => false
|
144
|
+
}
|
143
145
|
)
|
144
146
|
assert_equal ["kubernetes-deploy foo bar"], @spec.deploy_steps
|
145
147
|
end
|
@@ -150,8 +152,8 @@ module Shipit
|
|
150
152
|
@spec.stubs(:load_config).returns(
|
151
153
|
'kubernetes' => {
|
152
154
|
'namespace' => 'foo',
|
153
|
-
'context' => 'bar'
|
154
|
-
}
|
155
|
+
'context' => 'bar'
|
156
|
+
}
|
155
157
|
)
|
156
158
|
assert_equal ["kubernetes-deploy --max-watch-seconds 900 foo bar"], @spec.deploy_steps
|
157
159
|
end
|
@@ -161,8 +163,8 @@ module Shipit
|
|
161
163
|
'kubernetes' => {
|
162
164
|
'namespace' => 'foo',
|
163
165
|
'context' => 'bar',
|
164
|
-
'template_dir' => 'k8s_templates/'
|
165
|
-
}
|
166
|
+
'template_dir' => 'k8s_templates/'
|
167
|
+
}
|
166
168
|
)
|
167
169
|
assert_equal ["kubernetes-deploy --max-watch-seconds 900 --template-dir k8s_templates/ foo bar"], @spec.deploy_steps
|
168
170
|
end
|
@@ -192,8 +194,8 @@ module Shipit
|
|
192
194
|
end
|
193
195
|
|
194
196
|
test '#rollback_steps returns `rollback.override` if present' do
|
195
|
-
@spec.stubs(:load_config).returns('rollback' => { 'override' => %w
|
196
|
-
assert_equal %w
|
197
|
+
@spec.stubs(:load_config).returns('rollback' => { 'override' => %w[foo bar baz] })
|
198
|
+
assert_equal %w[foo bar baz], @spec.rollback_steps
|
197
199
|
end
|
198
200
|
|
199
201
|
test '#retries_on_rollback returns `rollback.retries` if present' do
|
@@ -223,8 +225,8 @@ module Shipit
|
|
223
225
|
@spec.stubs(:load_config).returns(
|
224
226
|
'kubernetes' => {
|
225
227
|
'namespace' => 'foo',
|
226
|
-
'context' => 'bar'
|
227
|
-
}
|
228
|
+
'context' => 'bar'
|
229
|
+
}
|
228
230
|
)
|
229
231
|
assert_equal ["kubernetes-deploy --max-watch-seconds 900 foo bar"], @spec.rollback_steps
|
230
232
|
end
|
@@ -235,8 +237,8 @@ module Shipit
|
|
235
237
|
@spec.stubs(:load_config).returns(
|
236
238
|
'kubernetes' => {
|
237
239
|
'namespace' => 'foo',
|
238
|
-
'context' => 'bar'
|
239
|
-
}
|
240
|
+
'context' => 'bar'
|
241
|
+
}
|
240
242
|
)
|
241
243
|
assert_equal ["kubernetes-deploy --max-watch-seconds 900 foo bar"], @spec.rollback_steps
|
242
244
|
end
|
@@ -245,15 +247,15 @@ module Shipit
|
|
245
247
|
@spec.stubs(:load_config).returns(
|
246
248
|
'kubernetes' => {
|
247
249
|
'namespace' => 'foo',
|
248
|
-
'context' => 'bar'
|
249
|
-
}
|
250
|
+
'context' => 'bar'
|
251
|
+
}
|
250
252
|
)
|
251
253
|
tasks = {
|
252
254
|
'restart' => {
|
253
255
|
'action' => 'Restart application',
|
254
256
|
'description' => 'Simulates a rollout of Kubernetes deployments by using kubernetes-restart utility',
|
255
|
-
'steps' => ['kubernetes-restart foo bar --max-watch-seconds 900']
|
256
|
-
}
|
257
|
+
'steps' => ['kubernetes-restart foo bar --max-watch-seconds 900']
|
258
|
+
}
|
257
259
|
}
|
258
260
|
assert_equal tasks, @spec.discover_task_definitions
|
259
261
|
end
|
@@ -263,20 +265,20 @@ module Shipit
|
|
263
265
|
'restart' => {
|
264
266
|
'action' => 'Restart application',
|
265
267
|
'description' => 'Simulates a rollout of Kubernetes deployments by using kubernetes-restart utility',
|
266
|
-
'steps' => ['kubernetes-restart something custom']
|
268
|
+
'steps' => ['kubernetes-restart something custom']
|
267
269
|
},
|
268
270
|
'some-other-tasj' => {
|
269
271
|
'action' => 'Do something else',
|
270
272
|
'description' => 'Eat some chips!',
|
271
|
-
'steps' => ['echo chips']
|
272
|
-
}
|
273
|
+
'steps' => ['echo chips']
|
274
|
+
}
|
273
275
|
}
|
274
276
|
@spec.stubs(:load_config).returns(
|
275
277
|
'kubernetes' => {
|
276
278
|
'namespace' => 'foo',
|
277
|
-
'context' => 'bar'
|
279
|
+
'context' => 'bar'
|
278
280
|
},
|
279
|
-
'tasks' => tasks
|
281
|
+
'tasks' => tasks
|
280
282
|
)
|
281
283
|
assert_equal tasks, @spec.discover_task_definitions
|
282
284
|
end
|
@@ -287,7 +289,7 @@ module Shipit
|
|
287
289
|
end
|
288
290
|
|
289
291
|
test '#gemspec gives the path of the repo gemspec if present' do
|
290
|
-
spec = DeploySpec::FileSystem.new('foobar/',
|
292
|
+
spec = DeploySpec::FileSystem.new('foobar/', @stack)
|
291
293
|
Dir.expects(:[]).with('foobar/*.gemspec').returns(['foobar/foobar.gemspec'])
|
292
294
|
assert_equal 'foobar/foobar.gemspec', spec.gemspec
|
293
295
|
end
|
@@ -309,7 +311,7 @@ module Shipit
|
|
309
311
|
end
|
310
312
|
|
311
313
|
test '#setup_dot_py gives the path of the repo setup.py if present' do
|
312
|
-
spec = DeploySpec::FileSystem.new('foobar/',
|
314
|
+
spec = DeploySpec::FileSystem.new('foobar/', @stack)
|
313
315
|
assert_equal Pathname.new('foobar/setup.py'), spec.setup_dot_py
|
314
316
|
end
|
315
317
|
|
@@ -330,7 +332,7 @@ module Shipit
|
|
330
332
|
steps = [
|
331
333
|
'assert-egg-version-tag /tmp/fake_setup.py',
|
332
334
|
'python setup.py register sdist',
|
333
|
-
'twine upload dist/*'
|
335
|
+
'twine upload dist/*'
|
334
336
|
]
|
335
337
|
assert_equal steps, @spec.deploy_steps
|
336
338
|
end
|
@@ -346,43 +348,43 @@ module Shipit
|
|
346
348
|
'method' => nil,
|
347
349
|
'max_divergence' => {
|
348
350
|
'commits' => nil,
|
349
|
-
'age' => nil
|
350
|
-
}
|
351
|
+
'age' => nil
|
352
|
+
}
|
351
353
|
},
|
352
354
|
'ci' => {
|
353
355
|
'hide' => [],
|
354
356
|
'allow_failures' => [],
|
355
357
|
'require' => [],
|
356
|
-
'blocking' => []
|
358
|
+
'blocking' => []
|
357
359
|
},
|
358
360
|
'machine' => {
|
359
361
|
'environment' => { 'BUNDLE_PATH' => @spec.bundle_path.to_s },
|
360
362
|
'directory' => nil,
|
361
|
-
'cleanup' => true
|
363
|
+
'cleanup' => true
|
362
364
|
},
|
363
365
|
'review' => { 'checklist' => [], 'monitoring' => [], 'checks' => [] },
|
364
366
|
'status' => {
|
365
367
|
'context' => nil,
|
366
|
-
'delay' => 0
|
368
|
+
'delay' => 0
|
367
369
|
},
|
368
370
|
'dependencies' => { 'override' => [] },
|
369
371
|
'plugins' => {},
|
370
372
|
'provision' => {
|
371
|
-
'handler_name' => nil
|
373
|
+
'handler_name' => nil
|
372
374
|
},
|
373
375
|
'deploy' => {
|
374
376
|
'override' => nil,
|
375
377
|
'variables' => [],
|
376
378
|
'max_commits' => 8,
|
377
379
|
'interval' => 0,
|
378
|
-
'retries' => nil
|
380
|
+
'retries' => nil
|
379
381
|
},
|
380
382
|
'rollback' => {
|
381
383
|
'override' => nil,
|
382
|
-
'retries' => nil
|
384
|
+
'retries' => nil
|
383
385
|
},
|
384
386
|
'fetch' => nil,
|
385
|
-
'tasks' => {}
|
387
|
+
'tasks' => {}
|
386
388
|
}
|
387
389
|
assert_equal config, @spec.cacheable.config
|
388
390
|
end
|
@@ -393,10 +395,10 @@ module Shipit
|
|
393
395
|
|
394
396
|
test "#deploy_variables returns an array of VariableDefinition instances" do
|
395
397
|
@spec.stubs(:load_config).returns('deploy' => { 'variables' => [{
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
398
|
+
'name' => 'SAFETY_DISABLED',
|
399
|
+
'title' => 'Set to 1 to do dangerous things',
|
400
|
+
'default' => 0
|
401
|
+
}] })
|
400
402
|
|
401
403
|
assert_equal 1, @spec.deploy_variables.size
|
402
404
|
variable_definition = @spec.deploy_variables.first
|
@@ -404,13 +406,13 @@ module Shipit
|
|
404
406
|
end
|
405
407
|
|
406
408
|
test "task definitions don't prepend bundle exec by default" do
|
407
|
-
@spec.expects(:load_config).returns('tasks' => { 'restart' => { 'steps' => %w
|
409
|
+
@spec.expects(:load_config).returns('tasks' => { 'restart' => { 'steps' => %w[foo] } })
|
408
410
|
definition = @spec.find_task_definition('restart')
|
409
411
|
assert_equal ['foo'], definition.steps
|
410
412
|
end
|
411
413
|
|
412
414
|
test "task definitions don't bundle exec before serialization" do
|
413
|
-
@spec.expects(:discover_task_definitions).returns('restart' => { 'steps' => %w
|
415
|
+
@spec.expects(:discover_task_definitions).returns('restart' => { 'steps' => %w[foo] })
|
414
416
|
@spec.expects(:bundler?).returns(true).at_least_once
|
415
417
|
|
416
418
|
cached_spec = DeploySpec.load(DeploySpec.dump(@spec))
|
@@ -429,7 +431,7 @@ module Shipit
|
|
429
431
|
module TestTaskDiscovery
|
430
432
|
def discover_task_definitions
|
431
433
|
{
|
432
|
-
'config_task' => { 'steps' => %w
|
434
|
+
'config_task' => { 'steps' => %w[bar] }
|
433
435
|
}.merge!(super)
|
434
436
|
end
|
435
437
|
end
|
@@ -438,14 +440,15 @@ module Shipit
|
|
438
440
|
DuplicateCustomizedDeploySpec.include(TestTaskDiscovery)
|
439
441
|
|
440
442
|
# Setup the spec as we would normally, but use the customized version
|
441
|
-
|
443
|
+
stack = shipit_stacks(:shipit)
|
444
|
+
@spec = DuplicateCustomizedDeploySpec.new(@app_dir, stack)
|
442
445
|
@spec.stubs(:load_config).returns(
|
443
|
-
'tasks' => { 'config_task' => { 'steps' => %w
|
446
|
+
'tasks' => { 'config_task' => { 'steps' => %w[foo] } }
|
444
447
|
)
|
445
448
|
tasks = @spec.task_definitions
|
446
449
|
|
447
450
|
# Assert we get only the task from the config, not from the module
|
448
|
-
assert_equal %w
|
451
|
+
assert_equal %w[config_task], tasks.map(&:id)
|
449
452
|
assert_equal ["foo"], tasks.first.steps
|
450
453
|
end
|
451
454
|
|
@@ -459,7 +462,7 @@ module Shipit
|
|
459
462
|
module TestTaskDiscovery
|
460
463
|
def discover_task_definitions
|
461
464
|
{
|
462
|
-
'module_task' => { 'steps' => %w
|
465
|
+
'module_task' => { 'steps' => %w[bar] }
|
463
466
|
}.merge(super)
|
464
467
|
end
|
465
468
|
end
|
@@ -468,20 +471,21 @@ module Shipit
|
|
468
471
|
CustomizedDeploySpec.include(TestTaskDiscovery)
|
469
472
|
|
470
473
|
# Setup the spec as we would normally, but use the customized version
|
471
|
-
|
474
|
+
stack = shipit_stacks(:shipit)
|
475
|
+
@spec = CustomizedDeploySpec.new(@app_dir, stack)
|
472
476
|
@spec.stubs(:load_config).returns(
|
473
|
-
'tasks' => { 'config_task' => { 'steps' => %w
|
477
|
+
'tasks' => { 'config_task' => { 'steps' => %w[foo] } },
|
474
478
|
'kubernetes' => {
|
475
479
|
'namespace' => 'foo',
|
476
480
|
'context' => 'bar',
|
477
|
-
'timeout' => '20m'
|
478
|
-
}
|
481
|
+
'timeout' => '20m'
|
482
|
+
}
|
479
483
|
)
|
480
484
|
tasks = @spec.task_definitions
|
481
485
|
|
482
486
|
# Assert we get tasks from all three sources: config, shipit-engine defined modules, and
|
483
487
|
# "third party" modules
|
484
|
-
assert_equal %w
|
488
|
+
assert_equal %w[config_task module_task restart], tasks.map(&:id).sort
|
485
489
|
|
486
490
|
module_task = tasks.find { |t| t.id == "config_task" }
|
487
491
|
assert_equal ["foo"], module_task.steps
|
@@ -501,15 +505,15 @@ module Shipit
|
|
501
505
|
{
|
502
506
|
'name' => 'SAFETY_DISABLED',
|
503
507
|
'title' => 'Set to 1 to do dangerous things',
|
504
|
-
'default' => 0
|
508
|
+
'default' => 0
|
505
509
|
},
|
506
510
|
{
|
507
511
|
'name' => 'FOO',
|
508
512
|
'title' => 'Set to 0 to foo',
|
509
|
-
'default' => 1
|
510
|
-
}
|
513
|
+
'default' => 1
|
514
|
+
}
|
511
515
|
],
|
512
|
-
'steps' => %w
|
516
|
+
'steps' => %w[foo]
|
513
517
|
} })
|
514
518
|
|
515
519
|
assert_equal 2, @spec.task_definitions.first.variables.size
|
@@ -522,8 +526,8 @@ module Shipit
|
|
522
526
|
end
|
523
527
|
|
524
528
|
test "#review_checklist returns an array" do
|
525
|
-
@spec.expects(:load_config).returns('review' => { 'checklist' => %w
|
526
|
-
assert_equal %w
|
529
|
+
@spec.expects(:load_config).returns('review' => { 'checklist' => %w[foo bar] })
|
530
|
+
assert_equal %w[foo bar], @spec.review_checklist
|
527
531
|
end
|
528
532
|
|
529
533
|
test "#review_checklist returns an empty array if the section is missing" do
|
@@ -532,12 +536,12 @@ module Shipit
|
|
532
536
|
|
533
537
|
test "#review_monitoring returns an array of hashes" do
|
534
538
|
@spec.expects(:load_config).returns('review' => { 'monitoring' => [
|
535
|
-
|
536
|
-
|
537
|
-
|
539
|
+
{ 'image' => 'http://example.com/foo.png', 'width' => 200, 'height' => 400 },
|
540
|
+
{ 'iframe' => 'http://example.com/', 'width' => 200, 'height' => 400 }
|
541
|
+
] })
|
538
542
|
assert_equal [
|
539
543
|
{ 'image' => 'http://example.com/foo.png', 'width' => 200, 'height' => 400 },
|
540
|
-
{ 'iframe' => 'http://example.com/', 'width' => 200, 'height' => 400 }
|
544
|
+
{ 'iframe' => 'http://example.com/', 'width' => 200, 'height' => 400 }
|
541
545
|
], @spec.review_monitoring
|
542
546
|
end
|
543
547
|
|
@@ -551,22 +555,22 @@ module Shipit
|
|
551
555
|
|
552
556
|
test "#hidden_statuses is an array even if the value is a string" do
|
553
557
|
@spec.expects(:load_config).returns('ci' => { 'hide' => 'ci/circleci' })
|
554
|
-
assert_equal %w
|
558
|
+
assert_equal %w[ci/circleci], @spec.hidden_statuses
|
555
559
|
end
|
556
560
|
|
557
561
|
test "#hidden_statuses is an array even if the value is present" do
|
558
|
-
@spec.expects(:load_config).returns('ci' => { 'hide' => %w
|
559
|
-
assert_equal %w
|
562
|
+
@spec.expects(:load_config).returns('ci' => { 'hide' => %w[ci/circleci ci/jenkins] })
|
563
|
+
assert_equal %w[ci/circleci ci/jenkins], @spec.hidden_statuses
|
560
564
|
end
|
561
565
|
|
562
566
|
test "#required_statuses automatically includes #blocking_statuses" do
|
563
567
|
@spec.expects(:load_config).returns(
|
564
568
|
'ci' => {
|
565
|
-
'require' => %w
|
566
|
-
'blocking' => %w
|
567
|
-
}
|
569
|
+
'require' => %w[ci/circleci],
|
570
|
+
'blocking' => %w[soc/compliance]
|
571
|
+
}
|
568
572
|
)
|
569
|
-
assert_equal %w
|
573
|
+
assert_equal %w[ci/circleci soc/compliance], @spec.required_statuses
|
570
574
|
end
|
571
575
|
|
572
576
|
test "merge_request_merge_method defaults to `nil`" do
|
@@ -577,8 +581,8 @@ module Shipit
|
|
577
581
|
test "merge_request_merge_method returns `merge.method`" do
|
578
582
|
@spec.expects(:load_config).returns(
|
579
583
|
'merge' => {
|
580
|
-
'method' => 'squash'
|
581
|
-
}
|
584
|
+
'method' => 'squash'
|
585
|
+
}
|
582
586
|
)
|
583
587
|
assert_equal 'squash', @spec.merge_request_merge_method
|
584
588
|
end
|
@@ -586,8 +590,8 @@ module Shipit
|
|
586
590
|
test "merge_request_merge_method returns `nil` if `merge.method` is invalid" do
|
587
591
|
@spec.expects(:load_config).returns(
|
588
592
|
'merge' => {
|
589
|
-
'method' => 'squashing'
|
590
|
-
}
|
593
|
+
'method' => 'squashing'
|
594
|
+
}
|
591
595
|
)
|
592
596
|
assert_nil @spec.merge_request_merge_method
|
593
597
|
end
|
@@ -595,22 +599,22 @@ module Shipit
|
|
595
599
|
test "merge_request_ignored_statuses defaults to the union of ci.hide and ci.allow_failures" do
|
596
600
|
@spec.expects(:load_config).returns(
|
597
601
|
'ci' => {
|
598
|
-
'hide' => %w
|
599
|
-
'allow_failures' => %w
|
600
|
-
}
|
602
|
+
'hide' => %w[ci/circleci ci/jenkins],
|
603
|
+
'allow_failures' => %w[ci/circleci ci/travis]
|
604
|
+
}
|
601
605
|
)
|
602
|
-
assert_equal %w
|
606
|
+
assert_equal %w[ci/circleci ci/jenkins ci/travis].sort, @spec.merge_request_ignored_statuses.sort
|
603
607
|
end
|
604
608
|
|
605
609
|
test "merge_request_ignored_statuses defaults to empty if `merge.require` is present" do
|
606
610
|
@spec.expects(:load_config).returns(
|
607
611
|
'merge' => {
|
608
|
-
'require' => 'bar'
|
612
|
+
'require' => 'bar'
|
609
613
|
},
|
610
614
|
'ci' => {
|
611
|
-
'hide' => %w
|
612
|
-
'allow_failures' => %w
|
613
|
-
}
|
615
|
+
'hide' => %w[ci/circleci ci/jenkins],
|
616
|
+
'allow_failures' => %w[ci/circleci ci/travis]
|
617
|
+
}
|
614
618
|
)
|
615
619
|
assert_equal [], @spec.merge_request_ignored_statuses
|
616
620
|
end
|
@@ -618,12 +622,12 @@ module Shipit
|
|
618
622
|
test "merge_request_ignored_statuses returns `merge.ignore` if present" do
|
619
623
|
@spec.expects(:load_config).returns(
|
620
624
|
'merge' => {
|
621
|
-
'ignore' => 'bar'
|
625
|
+
'ignore' => 'bar'
|
622
626
|
},
|
623
627
|
'ci' => {
|
624
|
-
'hide' => %w
|
625
|
-
'allow_failures' => %w
|
626
|
-
}
|
628
|
+
'hide' => %w[ci/circleci ci/jenkins],
|
629
|
+
'allow_failures' => %w[ci/circleci ci/travis]
|
630
|
+
}
|
627
631
|
)
|
628
632
|
assert_equal ['bar'], @spec.merge_request_ignored_statuses
|
629
633
|
end
|
@@ -631,20 +635,20 @@ module Shipit
|
|
631
635
|
test "merge_request_required_statuses defaults to ci.require" do
|
632
636
|
@spec.expects(:load_config).returns(
|
633
637
|
'ci' => {
|
634
|
-
'require' => %w
|
635
|
-
}
|
638
|
+
'require' => %w[ci/circleci ci/jenkins]
|
639
|
+
}
|
636
640
|
)
|
637
|
-
assert_equal %w
|
641
|
+
assert_equal %w[ci/circleci ci/jenkins], @spec.merge_request_required_statuses
|
638
642
|
end
|
639
643
|
|
640
644
|
test "merge_request_required_statuses defaults to empty if `merge.ignore` is present" do
|
641
645
|
@spec.expects(:load_config).returns(
|
642
646
|
'merge' => {
|
643
|
-
'ignore' => 'bar'
|
647
|
+
'ignore' => 'bar'
|
644
648
|
},
|
645
649
|
'ci' => {
|
646
|
-
'require' => %w
|
647
|
-
}
|
650
|
+
'require' => %w[ci/circleci ci/jenkins]
|
651
|
+
}
|
648
652
|
)
|
649
653
|
assert_equal [], @spec.merge_request_required_statuses
|
650
654
|
end
|
@@ -652,12 +656,12 @@ module Shipit
|
|
652
656
|
test "merge_request_required_statuses returns `merge.require` if present" do
|
653
657
|
@spec.expects(:load_config).returns(
|
654
658
|
'merge' => {
|
655
|
-
'require' => 'bar'
|
659
|
+
'require' => 'bar'
|
656
660
|
},
|
657
661
|
'ci' => {
|
658
|
-
'hide' => %w
|
659
|
-
'allow_failures' => %w
|
660
|
-
}
|
662
|
+
'hide' => %w[ci/circleci ci/jenkins],
|
663
|
+
'allow_failures' => %w[ci/circleci ci/travis]
|
664
|
+
}
|
661
665
|
)
|
662
666
|
assert_equal ['bar'], @spec.merge_request_required_statuses
|
663
667
|
end
|
@@ -670,8 +674,8 @@ module Shipit
|
|
670
674
|
test "revalidate_merge_requests_after defaults to `nil` if `merge.timeout` cannot be parsed" do
|
671
675
|
@spec.expects(:load_config).returns(
|
672
676
|
'merge' => {
|
673
|
-
'revalidate_after' => 'ALSKhfjsdkf'
|
674
|
-
}
|
677
|
+
'revalidate_after' => 'ALSKhfjsdkf'
|
678
|
+
}
|
675
679
|
)
|
676
680
|
assert_nil @spec.revalidate_merge_requests_after
|
677
681
|
end
|
@@ -679,8 +683,8 @@ module Shipit
|
|
679
683
|
test "revalidate_after returns `merge.revalidate_after` if present" do
|
680
684
|
@spec.expects(:load_config).returns(
|
681
685
|
'merge' => {
|
682
|
-
'revalidate_after' => '5m30s'
|
683
|
-
}
|
686
|
+
'revalidate_after' => '5m30s'
|
687
|
+
}
|
684
688
|
)
|
685
689
|
assert_equal 330, @spec.revalidate_merge_requests_after.to_i
|
686
690
|
end
|
@@ -1095,9 +1099,9 @@ module Shipit
|
|
1095
1099
|
@spec.expects(:load_config).returns(
|
1096
1100
|
'merge' => {
|
1097
1101
|
'max_divergence' => {
|
1098
|
-
'age' => 'badbadbad'
|
1099
|
-
}
|
1100
|
-
}
|
1102
|
+
'age' => 'badbadbad'
|
1103
|
+
}
|
1104
|
+
}
|
1101
1105
|
)
|
1102
1106
|
assert_nil @spec.max_divergence_age
|
1103
1107
|
end
|