Skip to content
Snippets Groups Projects
Commit a5347fe5 authored by Kamil Trzcińśki's avatar Kamil Trzcińśki
Browse files

Merge branch '30237-pipelines-actions-make-2-requests' into 'master'

Resolve: "Pipelines: When we retry a pipeline 2 requests are made to the pipelines endpoint"

Closes #30237

See merge request !10584
parents 07eac529 4f3dc19a
No related branches found
No related tags found
1 merge request!10584Resolve: "Pipelines: When we retry a pipeline 2 requests are made to the pipelines endpoint"
Pipeline #
Loading
Loading
@@ -40,6 +40,6 @@ export default class PipelinesService {
* @return {Promise}
*/
postAction(endpoint) {
return Vue.http.post(endpoint, {}, { emulateJSON: true });
return Vue.http.post(`${endpoint}.json`);
}
}
Loading
Loading
@@ -6,6 +6,8 @@ class Projects::PipelinesController < Projects::ApplicationController
before_action :authorize_update_pipeline!, only: [:retry, :cancel]
before_action :builds_enabled, only: :charts
 
wrap_parameters Ci::Pipeline
def index
@scope = params[:scope]
@pipelines = PipelinesFinder
Loading
Loading
@@ -92,13 +94,25 @@ class Projects::PipelinesController < Projects::ApplicationController
def retry
pipeline.retry_failed(current_user)
 
redirect_back_or_default default: namespace_project_pipelines_path(project.namespace, project)
respond_to do |format|
format.html do
redirect_back_or_default default: namespace_project_pipelines_path(project.namespace, project)
end
format.json { head :no_content }
end
end
 
def cancel
pipeline.cancel_running
 
redirect_back_or_default default: namespace_project_pipelines_path(project.namespace, project)
respond_to do |format|
format.html do
redirect_back_or_default default: namespace_project_pipelines_path(project.namespace, project)
end
format.json { head :no_content }
end
end
 
def charts
Loading
Loading
Loading
Loading
@@ -5,6 +5,8 @@ describe Projects::PipelinesController do
let(:project) { create(:empty_project, :public) }
 
before do
project.add_developer(user)
sign_in(user)
end
 
Loading
Loading
@@ -87,4 +89,38 @@ describe Projects::PipelinesController do
expect(json_response['favicon']).to eq "/assets/ci_favicons/#{status.favicon}.ico"
end
end
describe 'POST retry.json' do
let!(:pipeline) { create(:ci_pipeline, :failed, project: project) }
let!(:build) { create(:ci_build, :failed, pipeline: pipeline) }
before do
post :retry, namespace_id: project.namespace,
project_id: project,
id: pipeline.id,
format: :json
end
it 'retries a pipeline without returning any content' do
expect(response).to have_http_status(:no_content)
expect(build.reload).to be_retried
end
end
describe 'POST cancel.json' do
let!(:pipeline) { create(:ci_pipeline, project: project) }
let!(:build) { create(:ci_build, :running, pipeline: pipeline) }
before do
post :cancel, namespace_id: project.namespace,
project_id: project,
id: pipeline.id,
format: :json
end
it 'cancels a pipeline without returning any content' do
expect(response).to have_http_status(:no_content)
expect(pipeline.reload).to be_canceled
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment