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,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
|
4
5
|
module Shipit
|
@@ -18,15 +19,15 @@ module Shipit
|
|
18
19
|
|
19
20
|
test "#perform rejects unmergeable PRs and merge the others" do
|
20
21
|
MergeRequest.any_instance.stubs(:refresh!)
|
21
|
-
stub_request(:put, "#{@pending_pr.api_url}/merge").to_return(status: %w
|
22
|
+
stub_request(:put, "#{@pending_pr.api_url}/merge").to_return(status: %w[200 OK], body: {
|
22
23
|
sha: "6dcb09b5b57875f334f61aebed695e2e4193db5e",
|
23
24
|
merged: true,
|
24
|
-
message: "Pull Request successfully merged"
|
25
|
+
message: "Pull Request successfully merged"
|
25
26
|
}.to_json)
|
26
27
|
branch_url = "https://api.github.com/repos/shopify/shipit-engine/git/refs/heads/feature-62"
|
27
|
-
stub_request(:delete, branch_url).to_return(status: %w
|
28
|
+
stub_request(:delete, branch_url).to_return(status: %w[204 No content])
|
28
29
|
pulls_url = "https://api.github.com/repos/shopify/shipit-engine/pulls?base=feature-62"
|
29
|
-
stub_request(:get, pulls_url).to_return(status: %w
|
30
|
+
stub_request(:get, pulls_url).to_return(status: %w[200 OK], body: '[]')
|
30
31
|
|
31
32
|
@job.perform(@stack)
|
32
33
|
|
@@ -36,9 +37,9 @@ module Shipit
|
|
36
37
|
|
37
38
|
test "#perform rejects PRs if the merge attempt fails" do
|
38
39
|
MergeRequest.any_instance.stubs(:refresh!)
|
39
|
-
stub_request(:put, "#{@pending_pr.api_url}/merge").to_return(status: %w
|
40
|
+
stub_request(:put, "#{@pending_pr.api_url}/merge").to_return(status: %w[405 Method not allowed], body: {
|
40
41
|
message: "Pull Request is not mergeable",
|
41
|
-
documentation_url: "https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button"
|
42
|
+
documentation_url: "https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button"
|
42
43
|
}.to_json)
|
43
44
|
|
44
45
|
@job.perform(@stack)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Shipit
|
6
|
+
class BackgroundJobTest < ActiveSupport::TestCase
|
7
|
+
setup do
|
8
|
+
@stack = shipit_stacks(:shipit)
|
9
|
+
@last_commit = @stack.commits.last
|
10
|
+
@job = CacheDeploySpecJob.new
|
11
|
+
@user = shipit_users(:walrus)
|
12
|
+
end
|
13
|
+
|
14
|
+
test "#perform retries on Octokit secondary rate limit exceptions" do
|
15
|
+
freeze_time do
|
16
|
+
Octokit::Forbidden.any_instance.expects(:response_headers)
|
17
|
+
.returns({ "Retry-After" => 45 })
|
18
|
+
|
19
|
+
Shipit.github.api.expects(:user).with(@user.github_id).raises(Octokit::TooManyRequests)
|
20
|
+
|
21
|
+
assert_enqueued_with(job: BackgroundStubJob, at: Time.now + 45.seconds) do
|
22
|
+
BackgroundStubJob.perform_now(@user)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
class BackgroundStubJob < BackgroundJob
|
28
|
+
queue_as :default
|
29
|
+
|
30
|
+
def perform(user)
|
31
|
+
Shipit.github.api.user(user.github_id)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'test_helper'
|
4
|
+
|
5
|
+
module Shipit
|
6
|
+
class ContinuousDeliveryJobTest < ActiveSupport::TestCase
|
7
|
+
test "calls trigger_continous_delivery" do
|
8
|
+
stack = shipit_stacks(:shipit)
|
9
|
+
stack.stubs(:continuous_deployment?).returns(true).once
|
10
|
+
stack.stubs(:occupied).returns(false).once
|
11
|
+
stack.expects(:trigger_continuous_delivery).once
|
12
|
+
|
13
|
+
Shipit::ContinuousDeliveryJob.new.perform(stack)
|
14
|
+
end
|
15
|
+
|
16
|
+
test "does not call trigger_continuous_delivery if outside of schedule" do
|
17
|
+
freeze_time do
|
18
|
+
monday_9am = Date.current.monday.at_beginning_of_day.advance(hours: 9)
|
19
|
+
travel_to(monday_9am)
|
20
|
+
|
21
|
+
stack = shipit_stacks(:shipit)
|
22
|
+
stack.create_continuous_delivery_schedule!(monday_start: "09:30")
|
23
|
+
|
24
|
+
stack.stubs(:continuous_deployment?).returns(true).once
|
25
|
+
stack.expects(:trigger_continuous_delivery).never
|
26
|
+
|
27
|
+
Shipit::ContinuousDeliveryJob.new.perform(stack)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
|
4
5
|
module Shipit
|
@@ -20,7 +21,8 @@ module Shipit
|
|
20
21
|
test "the lock key is serialized" do
|
21
22
|
task = shipit_tasks(:shipit_restart)
|
22
23
|
job = ChunkRollupJob.new(task)
|
23
|
-
|
24
|
+
args = { "_aj_globalid" => "gid://shipit/Shipit::Task/#{task.id}" }
|
25
|
+
key = %(Shipit::ChunkRollupJob-#{args})
|
24
26
|
assert_equal key, job.lock_key(*job.arguments)
|
25
27
|
end
|
26
28
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
|
4
5
|
module Shipit
|
@@ -14,8 +15,7 @@ module Shipit
|
|
14
15
|
end
|
15
16
|
|
16
17
|
def env_for_url(url)
|
17
|
-
|
18
|
-
env
|
18
|
+
Rack::MockRequest.env_for(url)
|
19
19
|
end
|
20
20
|
|
21
21
|
def middleware
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
require 'tmpdir'
|
4
5
|
|
@@ -71,7 +72,7 @@ module Shipit
|
|
71
72
|
'',
|
72
73
|
'$ echo review',
|
73
74
|
'review',
|
74
|
-
''
|
75
|
+
''
|
75
76
|
]
|
76
77
|
assert_equal 'success', @checks.status
|
77
78
|
assert_equal lines, @checks.output.lines.map(&:strip)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
|
4
5
|
module Shipit
|
@@ -15,10 +16,9 @@ module Shipit
|
|
15
16
|
@author.github_api.class.any_instance.expects(:create_deployment_status).with(
|
16
17
|
@deployment.api_url,
|
17
18
|
'in_progress',
|
18
|
-
accept: "application/vnd.github.flash-preview+json",
|
19
19
|
target_url: "http://shipit.com/shopify/shipit-engine/production/deploys/#{@task.id}",
|
20
20
|
description: "walrus triggered the deploy of shopify/shipit-engine/production to #{@deployment.short_sha}",
|
21
|
-
environment_url: "https://shipit.shopify.com"
|
21
|
+
environment_url: "https://shipit.shopify.com"
|
22
22
|
).returns(response)
|
23
23
|
|
24
24
|
@status.create_on_github!
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
|
4
5
|
module Shipit
|
@@ -23,9 +24,9 @@ module Shipit
|
|
23
24
|
shipit: {
|
24
25
|
task_id: 4,
|
25
26
|
from_sha: 'f890fd8b5f2be05d1fedb763a3605ee461c39074',
|
26
|
-
to_sha: '467578b362bf2b4df5903e1c7960929361c3435a'
|
27
|
-
}
|
28
|
-
}.to_json
|
27
|
+
to_sha: '467578b362bf2b4df5903e1c7960929361c3435a'
|
28
|
+
}
|
29
|
+
}.to_json
|
29
30
|
).returns(deployment_response)
|
30
31
|
|
31
32
|
@deployment.create_on_github!
|
data/test/models/commits_test.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
|
4
5
|
module Shipit
|
@@ -11,9 +12,9 @@ module Shipit
|
|
11
12
|
@commit = shipit_commits(:first)
|
12
13
|
|
13
14
|
stub_request(:get, "https://api.github.com/user/emails").to_return(
|
14
|
-
status: %w
|
15
|
+
status: %w[200 OK],
|
15
16
|
body: {}.to_json,
|
16
|
-
headers: { "Content-Type" => "application/json" }
|
17
|
+
headers: { "Content-Type" => "application/json" }
|
17
18
|
)
|
18
19
|
end
|
19
20
|
|
@@ -28,16 +29,16 @@ module Shipit
|
|
28
29
|
author: {
|
29
30
|
name: 'George Abitbol',
|
30
31
|
email: '',
|
31
|
-
date: Time.now
|
32
|
+
date: Time.now
|
32
33
|
},
|
33
34
|
committer: {
|
34
35
|
name: 'George Abitbol',
|
35
36
|
email: '',
|
36
|
-
date: Time.now
|
37
|
+
date: Time.now
|
37
38
|
},
|
38
|
-
message: "commit to trigger staging build"
|
39
|
-
}
|
40
|
-
)
|
39
|
+
message: "commit to trigger staging build"
|
40
|
+
}
|
41
|
+
)
|
41
42
|
)
|
42
43
|
end
|
43
44
|
end
|
@@ -53,16 +54,16 @@ module Shipit
|
|
53
54
|
author: {
|
54
55
|
name: 'Lando Walrussian',
|
55
56
|
email: 'walrus@shopify.com',
|
56
|
-
date: Time.now
|
57
|
+
date: Time.now
|
57
58
|
},
|
58
59
|
committer: {
|
59
60
|
name: 'Lando Walrussian',
|
60
61
|
email: 'walrus@shopify.com',
|
61
|
-
date: Time.now
|
62
|
+
date: Time.now
|
62
63
|
},
|
63
|
-
message: ''
|
64
|
-
}
|
65
|
-
)
|
64
|
+
message: ''
|
65
|
+
}
|
66
|
+
)
|
66
67
|
)
|
67
68
|
end
|
68
69
|
commit = Commit.last
|
@@ -82,16 +83,16 @@ module Shipit
|
|
82
83
|
author: {
|
83
84
|
name: 'Lando Walrussian',
|
84
85
|
email: 'walrus@shopify.com',
|
85
|
-
date: Time.now
|
86
|
+
date: Time.now
|
86
87
|
},
|
87
88
|
committer: {
|
88
89
|
name: 'Lando Walrussian',
|
89
90
|
email: 'walrus@shopify.com',
|
90
|
-
date: Time.now
|
91
|
+
date: Time.now
|
91
92
|
},
|
92
|
-
message:
|
93
|
-
}
|
94
|
-
)
|
93
|
+
message:
|
94
|
+
}
|
95
|
+
)
|
95
96
|
)
|
96
97
|
end
|
97
98
|
|
@@ -113,16 +114,16 @@ module Shipit
|
|
113
114
|
author: {
|
114
115
|
name: 'Shipit',
|
115
116
|
email: '',
|
116
|
-
date: Time.now
|
117
|
+
date: Time.now
|
117
118
|
},
|
118
119
|
committer: {
|
119
120
|
name: 'Shipit',
|
120
121
|
email: '',
|
121
|
-
date: Time.now
|
122
|
+
date: Time.now
|
122
123
|
},
|
123
|
-
message: "commit to trigger staging build\n\nMerge-Requested-By: walrus\n"
|
124
|
-
}
|
125
|
-
)
|
124
|
+
message: "commit to trigger staging build\n\nMerge-Requested-By: walrus\n"
|
125
|
+
}
|
126
|
+
)
|
126
127
|
)
|
127
128
|
end
|
128
129
|
|
@@ -141,20 +142,20 @@ module Shipit
|
|
141
142
|
author: {
|
142
143
|
name: 'Shipit',
|
143
144
|
email: '',
|
144
|
-
date: Time.now
|
145
|
+
date: Time.now
|
145
146
|
},
|
146
147
|
committer: {
|
147
148
|
name: 'Shipit',
|
148
149
|
email: '',
|
149
|
-
date: Time.now
|
150
|
+
date: Time.now
|
150
151
|
},
|
151
|
-
message: "Merge pull request #62 from shipit-engine/yoloshipit\n\nyoloshipit!"
|
152
|
+
message: "Merge pull request #62 from shipit-engine/yoloshipit\n\nyoloshipit!"
|
152
153
|
},
|
153
154
|
parents: [
|
154
155
|
{ sha: "1864542e3d2f8a41916a2dec0f2b4d3c1bf4899b", url: '', html_url: '' },
|
155
|
-
{ sha: "63d7e03e517fd2ae1caeb1b7a9f21767f84d671a", url: '', html_url: '' }
|
156
|
-
]
|
157
|
-
)
|
156
|
+
{ sha: "63d7e03e517fd2ae1caeb1b7a9f21767f84d671a", url: '', html_url: '' }
|
157
|
+
]
|
158
|
+
)
|
158
159
|
)
|
159
160
|
end
|
160
161
|
|
@@ -270,14 +271,14 @@ module Shipit
|
|
270
271
|
author: walrus,
|
271
272
|
committer: walrus,
|
272
273
|
authored_at: Time.now,
|
273
|
-
committed_at: Time.now
|
274
|
+
committed_at: Time.now
|
274
275
|
)
|
275
276
|
|
276
277
|
deploy = @stack.deploys.build(
|
277
278
|
user_id: walrus.id,
|
278
279
|
since_commit: @stack.commits.first,
|
279
280
|
until_commit: new_commit,
|
280
|
-
status: 'success'
|
281
|
+
status: 'success'
|
281
282
|
)
|
282
283
|
deploy.stubs(:pull_request_head_for_commit).returns(nil)
|
283
284
|
deploy.save!
|
@@ -321,7 +322,7 @@ module Shipit
|
|
321
322
|
sha: "ab12",
|
322
323
|
authored_at: Time.now,
|
323
324
|
committed_at: Time.now,
|
324
|
-
message: "more fish!"
|
325
|
+
message: "more fish!"
|
325
326
|
)
|
326
327
|
end
|
327
328
|
|
@@ -331,7 +332,7 @@ module Shipit
|
|
331
332
|
description: nil,
|
332
333
|
context: 'default',
|
333
334
|
target_url: 'http://example.com',
|
334
|
-
created_at: 1.day.ago
|
335
|
+
created_at: 1.day.ago
|
335
336
|
)
|
336
337
|
Shipit.github.api.expects(:statuses).with(@stack.github_repo_name, @commit.sha, per_page: 100).returns([status])
|
337
338
|
assert_difference '@commit.statuses.count', 1 do
|
@@ -348,15 +349,16 @@ module Shipit
|
|
348
349
|
details_url: 'https://example.com/details',
|
349
350
|
html_url: 'https://example.com/run',
|
350
351
|
output: mock(
|
351
|
-
title: 'Tests build ran successfully'
|
352
|
+
title: 'Tests build ran successfully'
|
352
353
|
),
|
353
354
|
completed_at: Time.now,
|
354
|
-
started_at: Time.now - 1.minute
|
355
|
-
)
|
356
|
-
response = mock(
|
357
|
-
check_runs: [check_run],
|
355
|
+
started_at: Time.now - 1.minute
|
358
356
|
)
|
359
|
-
|
357
|
+
response = stub(rels: {}, data: mock(
|
358
|
+
check_runs: [check_run]
|
359
|
+
))
|
360
|
+
Shipit.github.api.expects(:check_runs).with(@stack.github_repo_name, @commit.sha, per_page: 100).returns(response.data)
|
361
|
+
Shipit.github.api.expects(:last_response).returns(response)
|
360
362
|
|
361
363
|
assert_difference -> { @commit.check_runs.count }, 1 do
|
362
364
|
@commit.refresh_check_runs!
|
@@ -374,7 +376,7 @@ module Shipit
|
|
374
376
|
sha: "ab12",
|
375
377
|
authored_at: Time.now,
|
376
378
|
committed_at: Time.now,
|
377
|
-
message: "more fish!"
|
379
|
+
message: "more fish!"
|
378
380
|
)
|
379
381
|
@stack.reload
|
380
382
|
assert_equal 3, @stack.undeployed_commits_count
|
@@ -415,7 +417,7 @@ module Shipit
|
|
415
417
|
sha: "ab12",
|
416
418
|
authored_at: Time.now,
|
417
419
|
committed_at: Time.now,
|
418
|
-
message: "more fish!"
|
420
|
+
message: "more fish!"
|
419
421
|
)
|
420
422
|
stack.reload
|
421
423
|
assert_nil stack.last_deployed_at
|
@@ -455,9 +457,9 @@ module Shipit
|
|
455
457
|
assert_equal 'failure', @commit.reload.state
|
456
458
|
|
457
459
|
@commit.stack.update!(cached_deploy_spec: DeploySpec.new('ci' => {
|
458
|
-
|
459
|
-
|
460
|
-
|
460
|
+
'hide' => 'metrics/coveralls',
|
461
|
+
'allow_failures' => 'metrics/performance'
|
462
|
+
}))
|
461
463
|
assert_equal 'pending', @commit.reload.state
|
462
464
|
end
|
463
465
|
|
@@ -473,9 +475,9 @@ module Shipit
|
|
473
475
|
assert_predicate commit.status, :group?
|
474
476
|
assert_equal 3, commit.status.size
|
475
477
|
commit.stack.update!(cached_deploy_spec: DeploySpec.new('ci' => { 'hide' => [
|
476
|
-
|
477
|
-
|
478
|
-
|
478
|
+
'Travis CI',
|
479
|
+
'metrics/coveralls'
|
480
|
+
] }))
|
479
481
|
commit.reload
|
480
482
|
refute_predicate commit.status, :group?
|
481
483
|
end
|
@@ -502,7 +504,7 @@ module Shipit
|
|
502
504
|
|
503
505
|
test "#deployable? is false if a required status is missing" do
|
504
506
|
commit = shipit_commits(:cyclimse_first)
|
505
|
-
commit.stack.stubs(:required_statuses).returns(%w
|
507
|
+
commit.stack.stubs(:required_statuses).returns(%w[ci/very-important])
|
506
508
|
refute_predicate commit, :deployable?
|
507
509
|
end
|
508
510
|
|
@@ -598,15 +600,15 @@ module Shipit
|
|
598
600
|
end
|
599
601
|
|
600
602
|
expected_webhook_transitions = { # we expect deployable_status to fire on these transitions, and not on any others
|
601
|
-
'unknown' => %w
|
602
|
-
'pending' => %w
|
603
|
-
'success' => %w
|
604
|
-
'failure' => %w
|
605
|
-
'error' => %w
|
603
|
+
'unknown' => %w[pending success failure error],
|
604
|
+
'pending' => %w[success failure error],
|
605
|
+
'success' => %w[failure error],
|
606
|
+
'failure' => %w[success],
|
607
|
+
'error' => %w[success]
|
606
608
|
}
|
607
609
|
expected_webhook_transitions.each do |initial_state, firing_states|
|
608
610
|
initial_status_attributes = { state: initial_state, description: 'abc', context: 'ci/travis' }
|
609
|
-
(expected_webhook_transitions.keys - %w
|
611
|
+
(expected_webhook_transitions.keys - %w[unknown]).each do |new_state|
|
610
612
|
should_fire = firing_states.include?(new_state)
|
611
613
|
action = should_fire ? 'fires' : 'does not fire'
|
612
614
|
test "#add_status #{action} for status from #{initial_state} to #{new_state}" do
|
@@ -618,7 +620,7 @@ module Shipit
|
|
618
620
|
unless initial_state == 'unknown'
|
619
621
|
attrs = initial_status_attributes.merge(
|
620
622
|
stack_id: commit.stack_id,
|
621
|
-
created_at: 10.days.ago.to_formatted_s(:db)
|
623
|
+
created_at: 10.days.ago.to_formatted_s(:db)
|
622
624
|
)
|
623
625
|
commit.statuses.create!(attrs)
|
624
626
|
end
|
@@ -651,7 +653,7 @@ module Shipit
|
|
651
653
|
state: 'failure',
|
652
654
|
description: 'Sad',
|
653
655
|
context: 'ci/hidden',
|
654
|
-
created_at: 1.day.ago.to_formatted_s(:db)
|
656
|
+
created_at: 1.day.ago.to_formatted_s(:db)
|
655
657
|
)
|
656
658
|
commit.create_status_from_github!(github_status)
|
657
659
|
end
|
@@ -668,7 +670,7 @@ module Shipit
|
|
668
670
|
state: 'failure',
|
669
671
|
description: 'Sad',
|
670
672
|
context: 'ci/ok_to_fail',
|
671
|
-
created_at: 1.day.ago.to_formatted_s(:db)
|
673
|
+
created_at: 1.day.ago.to_formatted_s(:db)
|
672
674
|
)
|
673
675
|
commit.create_status_from_github!(github_status)
|
674
676
|
end
|
@@ -683,7 +685,7 @@ module Shipit
|
|
683
685
|
state: 'failure',
|
684
686
|
description: 'Sad',
|
685
687
|
context: 'ci/travis',
|
686
|
-
created_at: 1.day.ago.to_formatted_s(:db)
|
688
|
+
created_at: 1.day.ago.to_formatted_s(:db)
|
687
689
|
)
|
688
690
|
commit.create_status_from_github!(github_status)
|
689
691
|
end
|
@@ -695,7 +697,7 @@ module Shipit
|
|
695
697
|
state: 'success',
|
696
698
|
description: 'Cool',
|
697
699
|
context: 'metrics/coveralls',
|
698
|
-
created_at: 1.day.ago.to_formatted_s(:db)
|
700
|
+
created_at: 1.day.ago.to_formatted_s(:db)
|
699
701
|
)
|
700
702
|
|
701
703
|
assert_equal 'failure', commit.state
|
@@ -738,7 +740,7 @@ module Shipit
|
|
738
740
|
committer: shipit_users(:shipit),
|
739
741
|
committed_at: Time.now,
|
740
742
|
sha: '5590fd8b5f2be05d1fedb763a3605ee461c39074',
|
741
|
-
message: "Merge pull request #62 from shipit-engine/yoloshipit\n\nyoloshipit!"
|
743
|
+
message: "Merge pull request #62 from shipit-engine/yoloshipit\n\nyoloshipit!"
|
742
744
|
)
|
743
745
|
merge_request = shipit_merge_requests(:shipit_pending)
|
744
746
|
|
@@ -755,7 +757,7 @@ module Shipit
|
|
755
757
|
committer: shipit_users(:shipit),
|
756
758
|
committed_at: Time.now,
|
757
759
|
sha: '5590fd8b5f2be05d1fedb763a3605ee461c39074',
|
758
|
-
message: "Merge pull request #99 from shipit-engine/yoloshipit\n\nyoloshipit!"
|
760
|
+
message: "Merge pull request #99 from shipit-engine/yoloshipit\n\nyoloshipit!"
|
759
761
|
)
|
760
762
|
|
761
763
|
assert_predicate commit, :pull_request?
|
@@ -771,7 +773,7 @@ module Shipit
|
|
771
773
|
committer: shipit_users(:shipit),
|
772
774
|
committed_at: Time.now,
|
773
775
|
sha: '5590fd8b5f2be05d1fedb763a3605ee461c39074',
|
774
|
-
message: "Merge pull request #62 from shipit-engine/yoloshipit\n\nyoloshipit!"
|
776
|
+
message: "Merge pull request #62 from shipit-engine/yoloshipit\n\nyoloshipit!"
|
775
777
|
)
|
776
778
|
|
777
779
|
assert_equal shipit_users(:walrus), commit.author
|
@@ -784,7 +786,7 @@ module Shipit
|
|
784
786
|
committer: shipit_users(:shipit),
|
785
787
|
committed_at: Time.now,
|
786
788
|
sha: '5590fd8b5f2be05d1fedb763a3605ee461c39074',
|
787
|
-
message: "Yoloshipit!"
|
789
|
+
message: "Yoloshipit!"
|
788
790
|
)
|
789
791
|
|
790
792
|
refute_predicate commit, :pull_request?
|
@@ -800,44 +802,44 @@ module Shipit
|
|
800
802
|
|
801
803
|
test "#revert? returns true for commits reverted by GitHub" do
|
802
804
|
commit = Commit.new(
|
803
|
-
message: "Merge pull request #17 from Shopify/revert-16\n\nRevert \"Create README.md\""
|
805
|
+
message: "Merge pull request #17 from Shopify/revert-16\n\nRevert \"Create README.md\""
|
804
806
|
)
|
805
807
|
assert_predicate commit, :revert?
|
806
808
|
end
|
807
809
|
|
808
810
|
test "#revert? returns true for commits reverted from CLI" do
|
809
811
|
commit = Commit.new(
|
810
|
-
message: "Revert \"Super Feature\"\n\nThis reverts commit 49430d5091abc34f2c576c23ebf369ec7094d8aa."
|
812
|
+
message: "Revert \"Super Feature\"\n\nThis reverts commit 49430d5091abc34f2c576c23ebf369ec7094d8aa."
|
811
813
|
)
|
812
814
|
assert_predicate commit, :revert?
|
813
815
|
end
|
814
816
|
|
815
817
|
test "#revert_of? works with pull requests reverted on GitHub" do
|
816
818
|
commit = Commit.new(
|
817
|
-
message: "Merge pull request #16 from byroot/casperisfine-patch-1\n\nCreate README.md"
|
819
|
+
message: "Merge pull request #16 from byroot/casperisfine-patch-1\n\nCreate README.md"
|
818
820
|
)
|
819
821
|
revert = Commit.new(
|
820
|
-
message: "Merge pull request #17 from Shopify/revert-16\n\nRevert \"Create README.md\""
|
822
|
+
message: "Merge pull request #17 from Shopify/revert-16\n\nRevert \"Create README.md\""
|
821
823
|
)
|
822
824
|
assert revert.revert_of?(commit)
|
823
825
|
end
|
824
826
|
|
825
827
|
test "#revert_of? works with commits reverted from CLI" do
|
826
828
|
commit = Commit.new(
|
827
|
-
message: "Create README.md"
|
829
|
+
message: "Create README.md"
|
828
830
|
)
|
829
831
|
revert = Commit.new(
|
830
|
-
message: "Revert \"Create README.md\"\n\nThis reverts commit 49430d5091abc34f2c576c23ebf369ec7094d8aa."
|
832
|
+
message: "Revert \"Create README.md\"\n\nThis reverts commit 49430d5091abc34f2c576c23ebf369ec7094d8aa."
|
831
833
|
)
|
832
834
|
assert revert.revert_of?(commit)
|
833
835
|
end
|
834
836
|
|
835
837
|
test "#revert_of? works with pull requests reverted from CLI" do
|
836
838
|
commit = Commit.new(
|
837
|
-
message: "Merge pull request #19 from byroot/casperisfine-patch-1\n\nUpdate README.md"
|
839
|
+
message: "Merge pull request #19 from byroot/casperisfine-patch-1\n\nUpdate README.md"
|
838
840
|
)
|
839
841
|
revert = Commit.new(
|
840
|
-
message: "Revert \"Merge pull request #19 from byroot/casperisfine-patch-1\"\n\nThis reverts commit fa3722ef8372b47160f5d96010d3c54743d192f9, reversing\nchanges made to 868b6f65f759d003c04d056f2f928f18d6813c7e."
|
842
|
+
message: "Revert \"Merge pull request #19 from byroot/casperisfine-patch-1\"\n\nThis reverts commit fa3722ef8372b47160f5d96010d3c54743d192f9, reversing\nchanges made to 868b6f65f759d003c04d056f2f928f18d6813c7e."
|
841
843
|
)
|
842
844
|
assert revert.revert_of?(commit)
|
843
845
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
require 'test_helper'
|
3
4
|
|
4
5
|
module Shipit
|
@@ -13,7 +14,7 @@ module Shipit
|
|
13
14
|
event: 'deploy',
|
14
15
|
url: 'http://example.com',
|
15
16
|
content_type: 'application/json',
|
16
|
-
payload: '{}'
|
17
|
+
payload: '{}'
|
17
18
|
)
|
18
19
|
assert_equal 'pending', delivery.status
|
19
20
|
|
@@ -25,7 +26,7 @@ module Shipit
|
|
25
26
|
|
26
27
|
test "#send! post the payload and update the status to `sent`" do
|
27
28
|
headers = { 'content-type' => 'text/plain', 'content-length' => '2' }
|
28
|
-
stub_request(:post, @delivery.url).to_return(headers
|
29
|
+
stub_request(:post, @delivery.url).to_return(headers:, body: 'OK')
|
29
30
|
|
30
31
|
assert_equal 'scheduled', @delivery.status
|
31
32
|
@delivery.send!
|