summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorShinya Maeda <shinya@gitlab.com>2018-01-27 02:00:29 +0900
committerShinya Maeda <shinya@gitlab.com>2018-02-06 15:50:08 +0900
commit5f6d826165aa975735cd543dba2b91999c115545 (patch)
treee1f2de2c8106a420e75c26302dbe340bcaf4bc8c /app
parent002f314f320c5731681297225fff5b528de88ed2 (diff)
downloadgitlab-ce-5f6d826165aa975735cd543dba2b91999c115545.tar.gz
Add CreateArtifactsTraceWorker
Diffstat (limited to 'app')
-rw-r--r--app/services/ci/create_artifacts_trace_service.rb16
-rw-r--r--app/uploaders/job_artifact_uploader.rb8
-rw-r--r--app/workers/build_finished_worker.rb1
-rw-r--r--app/workers/create_artifacts_trace_worker.rb8
4 files changed, 28 insertions, 5 deletions
diff --git a/app/services/ci/create_artifacts_trace_service.rb b/app/services/ci/create_artifacts_trace_service.rb
new file mode 100644
index 00000000000..eefc2ae13ea
--- /dev/null
+++ b/app/services/ci/create_artifacts_trace_service.rb
@@ -0,0 +1,16 @@
+module Ci
+ class CreateArtifactsTraceService < BaseService
+ def execute(job_id)
+ Ci::Build.find_by(id: job_id).try do |job|
+ return if job.job_artifacts_trace
+
+ job.trace.read do |stream|
+ job.create_job_artifacts_trace!(
+ project: job.project,
+ file_type: :trace,
+ file: stream.path) if stream.file?
+ end
+ end
+ end
+ end
+end
diff --git a/app/uploaders/job_artifact_uploader.rb b/app/uploaders/job_artifact_uploader.rb
index 4c814c6f501..57678dae9ca 100644
--- a/app/uploaders/job_artifact_uploader.rb
+++ b/app/uploaders/job_artifact_uploader.rb
@@ -14,11 +14,9 @@ class JobArtifactUploader < GitlabUploader
end
def open
- if file_storage?
- File.open(path, "rb")
- else
- raise 'Only File System is supported'
- end
+ raise 'Only File System is supported' unless file_storage?
+
+ File.open(path, "rb")
end
private
diff --git a/app/workers/build_finished_worker.rb b/app/workers/build_finished_worker.rb
index 97d80305bec..842ab7bbbe4 100644
--- a/app/workers/build_finished_worker.rb
+++ b/app/workers/build_finished_worker.rb
@@ -7,6 +7,7 @@ class BuildFinishedWorker
def perform(build_id)
Ci::Build.find_by(id: build_id).try do |build|
BuildTraceSectionsWorker.perform_async(build.id)
+ CreateArtifactsTraceWorker.perform_async(build.id)
BuildCoverageWorker.new.perform(build.id)
BuildHooksWorker.new.perform(build.id)
end
diff --git a/app/workers/create_artifacts_trace_worker.rb b/app/workers/create_artifacts_trace_worker.rb
new file mode 100644
index 00000000000..d73951b0905
--- /dev/null
+++ b/app/workers/create_artifacts_trace_worker.rb
@@ -0,0 +1,8 @@
+class CreateArtifactsTraceWorker
+ include ApplicationWorker
+ include PipelineQueue
+
+ def perform(job_id)
+ Ci::CreateArtifactsTraceService.new.execute(job_id)
+ end
+end