Creates Feature Flag for job log
Updates frontend code and specs to allow for the new feature flag
This commit is contained in:
parent
e5398754a6
commit
288e709cb7
|
@ -12,7 +12,6 @@ import createStore from '../store';
|
|||
import EmptyState from './empty_state.vue';
|
||||
import EnvironmentsBlock from './environments_block.vue';
|
||||
import ErasedBlock from './erased_block.vue';
|
||||
import Log from './job_log.vue';
|
||||
import LogTopBar from './job_log_controllers.vue';
|
||||
import StuckBlock from './stuck_block.vue';
|
||||
import UnmetPrerequisitesBlock from './unmet_prerequisites_block.vue';
|
||||
|
@ -30,7 +29,10 @@ export default {
|
|||
EnvironmentsBlock,
|
||||
ErasedBlock,
|
||||
Icon,
|
||||
Log,
|
||||
Log: () =>
|
||||
gon && gon.features && gon.features.jobLogJson
|
||||
? import('./job_log_json.vue')
|
||||
: import('./job_log.vue'),
|
||||
LogTopBar,
|
||||
StuckBlock,
|
||||
UnmetPrerequisitesBlock,
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<script>
|
||||
export default {
|
||||
name: 'JobLogJSON',
|
||||
};
|
||||
</script>
|
||||
<template>
|
||||
<pre>
|
||||
{{ __('This feature is in development. Please disable the `job_log_json` feature flag') }}
|
||||
</pre>
|
||||
</template>
|
|
@ -11,6 +11,9 @@ class Projects::JobsController < Projects::ApplicationController
|
|||
before_action :authorize_erase_build!, only: [:erase]
|
||||
before_action :authorize_use_build_terminal!, only: [:terminal, :terminal_websocket_authorize]
|
||||
before_action :verify_api_request!, only: :terminal_websocket_authorize
|
||||
before_action only: [:trace] do
|
||||
push_frontend_feature_flag(:job_log_json)
|
||||
end
|
||||
|
||||
layout 'project'
|
||||
|
||||
|
@ -64,6 +67,14 @@ class Projects::JobsController < Projects::ApplicationController
|
|||
# rubocop: enable CodeReuse/ActiveRecord
|
||||
|
||||
def trace
|
||||
if Feature.enabled?(:job_log_json, @project)
|
||||
json_trace
|
||||
else
|
||||
html_trace
|
||||
end
|
||||
end
|
||||
|
||||
def html_trace
|
||||
build.trace.read do |stream|
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
|
@ -84,6 +95,10 @@ class Projects::JobsController < Projects::ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
def json_trace
|
||||
# will be implemented with https://gitlab.com/gitlab-org/gitlab-ce/issues/66454
|
||||
end
|
||||
|
||||
def retry
|
||||
return respond_422 unless @build.retryable?
|
||||
|
||||
|
|
|
@ -11760,6 +11760,9 @@ msgstr ""
|
|||
msgid "This domain is not verified. You will need to verify ownership before access is enabled."
|
||||
msgstr ""
|
||||
|
||||
msgid "This feature is in development. Please disable the `job_log_json` feature flag"
|
||||
msgstr ""
|
||||
|
||||
msgid "This feature requires local storage to be enabled"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ describe Projects::JobsController, :clean_gitlab_redis_shared_state do
|
|||
|
||||
before do
|
||||
stub_feature_flags(ci_enable_live_trace: true)
|
||||
stub_feature_flags(job_log_json: false)
|
||||
stub_not_protect_default_branch
|
||||
end
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@ describe 'User browses a job', :js do
|
|||
let!(:build) { create(:ci_build, :success, :trace_artifact, :coverage, pipeline: pipeline) }
|
||||
|
||||
before do
|
||||
stub_feature_flags(job_log_json: false)
|
||||
|
||||
project.add_maintainer(user)
|
||||
project.enable_ci
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@ describe 'Jobs', :clean_gitlab_redis_shared_state do
|
|||
before do
|
||||
project.add_role(user, user_access_level)
|
||||
sign_in(user)
|
||||
stub_feature_flags(job_log_json: false)
|
||||
end
|
||||
|
||||
describe "GET /:project/jobs" do
|
||||
|
|
|
@ -7,6 +7,10 @@ describe "Internal Project Access" do
|
|||
|
||||
set(:project) { create(:project, :internal, :repository) }
|
||||
|
||||
before do
|
||||
stub_feature_flags(job_log_json: false)
|
||||
end
|
||||
|
||||
describe "Project should be internal" do
|
||||
describe '#internal?' do
|
||||
subject { project.internal? }
|
||||
|
|
|
@ -7,6 +7,10 @@ describe "Private Project Access" do
|
|||
|
||||
set(:project) { create(:project, :private, :repository, public_builds: false) }
|
||||
|
||||
before do
|
||||
stub_feature_flags(job_log_json: false)
|
||||
end
|
||||
|
||||
describe "Project should be private" do
|
||||
describe '#private?' do
|
||||
subject { project.private? }
|
||||
|
|
|
@ -7,6 +7,10 @@ describe "Public Project Access" do
|
|||
|
||||
set(:project) { create(:project, :public, :repository) }
|
||||
|
||||
before do
|
||||
stub_feature_flags(job_log_json: false)
|
||||
end
|
||||
|
||||
describe "Project should be public" do
|
||||
describe '#public?' do
|
||||
subject { project.public? }
|
||||
|
|
Loading…
Reference in New Issue