summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/trace.rb
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2018-04-03 01:22:46 +0900
committerShinya Maeda <shinya@gitlab.com>2018-04-05 14:14:54 +0900
commitf0ddad75e902ee5d58c9d84668ca9bd6b8de3a9b (patch)
tree04aa38e6f09c68e9e111e19b6787e36ece2817d7 /lib/gitlab/ci/trace.rb
parenta689a220d352d20ff0b9c59a5783a3ef5c37c8d7 (diff)
downloadgitlab-ce-f0ddad75e902ee5d58c9d84668ca9bd6b8de3a9b.tar.gz
Fix archive method. Fix trace spec
Diffstat (limited to 'lib/gitlab/ci/trace.rb')
-rw-r--r--lib/gitlab/ci/trace.rb15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/gitlab/ci/trace.rb b/lib/gitlab/ci/trace.rb
index c4000cc787a..3dc4848c23d 100644
--- a/lib/gitlab/ci/trace.rb
+++ b/lib/gitlab/ci/trace.rb
@@ -54,7 +54,7 @@ module Gitlab
end
def exist?
- trace_artifact&.exists? || current_path.present? || old_trace.present?
+ trace_artifact&.exists? || ChunkedFile::LiveTrace.exist?(job.id) || current_path.present? || old_trace.present?
end
def read
@@ -62,7 +62,7 @@ module Gitlab
if trace_artifact
trace_artifact.open
elsif ChunkedFile::LiveTrace.exist?(job.id)
- ChunkedFile::LiveTrace.new(job.id, "rb")
+ ChunkedFile::LiveTrace.new(job.id, nil, "rb")
elsif current_path
File.open(current_path, "rb")
elsif old_trace
@@ -81,7 +81,7 @@ module Gitlab
if current_path
current_path
else
- ChunkedFile::LiveTrace.new(job.id, "a+b")
+ ChunkedFile::LiveTrace.new(job.id, nil, "a+b")
end
else
File.open(ensure_path, "a+b")
@@ -110,9 +110,12 @@ module Gitlab
raise ArchiveError, 'Job is not finished yet' unless job.complete?
if ChunkedFile::LiveTrace.exist?(job.id)
- ChunkedFile::LiveTrace.open(job.id, 'a+b') do |stream|
- archive_stream!(stream)
- stream.delete
+ ChunkedFile::LiveTrace.new(job.id, nil, 'a+b') do |live_trace_stream|
+ StringIO.new(live_trace_stream.read, 'rb').tap do |stream|
+ archive_stream!(stream)
+ end
+
+ live_trace_stream.delete
end
elsif current_path
File.open(current_path) do |stream|