diff options
author | Shinya Maeda <shinya@gitlab.com> | 2018-01-25 12:50:56 +0300 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2018-02-06 09:50:07 +0300 |
commit | 63a9d582aa88d774af5eff124b693df6271ae7bc (patch) | |
tree | 626d1569a1a5a980473abad552832608b6cf56fc /lib | |
parent | 84bda43a3c0ce13a436748d0bc0ea943f6ebccb3 (diff) |
Trace as artifacts
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/runner.rb | 11 | ||||
-rw-r--r-- | lib/gitlab/ci/trace.rb | 22 |
2 files changed, 24 insertions, 9 deletions
diff --git a/lib/api/runner.rb b/lib/api/runner.rb index 1f80646a2ea..bab9d263e8d 100644 --- a/lib/api/runner.rb +++ b/lib/api/runner.rb @@ -120,7 +120,16 @@ module API put '/:id' do job = authenticate_job! - job.trace.set(params[:trace]) if params[:trace] + if params[:trace] + # Overwrite live-trace by full-trace + job.trace.set(params[:trace]) + + # Move full-trace to JobArtifactUploader#default_path + job.build_job_artifacts_trace( + project: job.project, + file_type: :trace, + file: UploadedFile.new(job.trace.current_path, 'trace.log')) + end Gitlab::Metrics.add_event(:update_build, project: job.project.full_path) diff --git a/lib/gitlab/ci/trace.rb b/lib/gitlab/ci/trace.rb index baf55b1fa07..a6827d7a38a 100644 --- a/lib/gitlab/ci/trace.rb +++ b/lib/gitlab/ci/trace.rb @@ -52,12 +52,14 @@ module Gitlab end def exist? - current_path.present? || old_trace.present? + trace_artifact&.exists? || current_path.present? || old_trace.present? end def read stream = Gitlab::Ci::Trace::Stream.new do - if current_path + if trace_artifact + trace_artifact.open + elsif current_path File.open(current_path, "rb") elsif old_trace StringIO.new(old_trace) @@ -104,12 +106,6 @@ module Gitlab end end - def current_path - @current_path ||= paths.find do |trace_path| - File.exist?(trace_path) - end - end - def paths [ default_path, @@ -117,6 +113,12 @@ module Gitlab ].compact end + def current_path + @current_path ||= paths.find do |trace_path| + File.exist?(trace_path) + end + end + def default_directory File.join( Settings.gitlab_ci.builds_path, @@ -137,6 +139,10 @@ module Gitlab "#{job.id}.log" ) if job.project&.ci_id end + + def trace_artifact + job.job_artifacts_trace + end end end end |