Merge branch '28019-make-builds-show-faster' into 'master'

Performance improvement on Projects::BuildsController#show.html

Closes #28019

See merge request !9149
This commit is contained in:
Kamil Trzciński 2017-03-07 09:27:02 +00:00
commit 56814482d6
4 changed files with 7 additions and 10 deletions

View file

@ -12,7 +12,7 @@ module BuildsHelper
build_url: namespace_project_build_url(@project.namespace, @project, @build, :json),
build_status: @build.status,
build_stage: @build.stage,
log_state: @build.trace_with_state[:state].to_s
log_state: ''
}
end

View file

@ -1,6 +1,5 @@
- @no_container = true
- page_title "#{@build.name} (##{@build.id})", "Jobs"
- trace_with_state = @build.trace_with_state
= render "projects/pipelines/head", build_subnav: true
%div{ class: container_class }

View file

@ -0,0 +1,4 @@
---
title: Avoid calling Build#trace_with_state for performance
merge_request: 9149
author: Takuya Noguchi

View file

@ -9,12 +9,6 @@ require('vendor/jquery.nicescroll');
describe('Build', () => {
const BUILD_URL = `${gl.TEST_HOST}/frontend-fixtures/builds-project/builds/1`;
// see spec/factories/ci/builds.rb
const BUILD_TRACE = 'BUILD TRACE';
// see lib/ci/ansi2html.rb
const INITIAL_BUILD_TRACE_STATE = window.btoa(JSON.stringify({
offset: BUILD_TRACE.length, n_open_tags: 0, fg_color: null, bg_color: null, style_mask: 0,
}));
preloadFixtures('builds/build-with-artifacts.html.raw');
@ -42,7 +36,7 @@ describe('Build', () => {
expect(this.build.buildUrl).toBe(`${BUILD_URL}.json`);
expect(this.build.buildStatus).toBe('success');
expect(this.build.buildStage).toBe('test');
expect(this.build.state).toBe(INITIAL_BUILD_TRACE_STATE);
expect(this.build.state).toBe('');
});
it('only shows the jobs matching the current stage', () => {
@ -108,7 +102,7 @@ describe('Build', () => {
expect($.ajax.calls.count()).toBe(2);
let [{ url, dataType, success, context }] = $.ajax.calls.argsFor(1);
expect(url).toBe(
`${BUILD_URL}/trace.json?state=${encodeURIComponent(INITIAL_BUILD_TRACE_STATE)}`,
`${BUILD_URL}/trace.json?state=`,
);
expect(dataType).toBe('json');
expect(success).toEqual(jasmine.any(Function));