summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2015-07-08 14:12:34 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2015-07-08 14:12:34 +0000
commit00b6536f4d155ec41b8a8434d992b6b207f07bb5 (patch)
tree118927afe00dc27abe67420862d0035bced7f2c9 /app
parent52cc9a572484a87cea542448e6d439b7c6032e04 (diff)
parentb34f96ec2a4a0d09d35f562aa18eb91071d95b2f (diff)
downloadgitlab-ci-00b6536f4d155ec41b8a8434d992b6b207f07bb5.tar.gz
Merge branch 'trace_in_file' into 'master'
Build trace in file https://dev.gitlab.org/gitlab/gitlab-ci/issues/272 See merge request !167
Diffstat (limited to 'app')
-rw-r--r--app/models/build.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/app/models/build.rb b/app/models/build.rb
index 725da75..51c2bf6 100644
--- a/app/models/build.rb
+++ b/app/models/build.rb
@@ -210,4 +210,37 @@ class Build < ActiveRecord::Base
# so we just silentrly ignore error for now
end
end
+
+ def trace
+ if File.exist?(path_to_trace)
+ File.read(path_to_trace)
+ else
+ # backward compatibility
+ read_attribute :trace
+ end
+ end
+
+ def trace=(trace)
+ unless Dir.exists? dir_to_trace
+ FileUtils.mkdir_p dir_to_trace
+ end
+
+ File.write(path_to_trace, trace)
+ end
+
+ def dir_to_trace
+ Rails.root.join(
+ root_dir_to_trace,
+ created_at.utc.strftime("%Y_%m"),
+ project.id.to_s
+ )
+ end
+
+ def root_dir_to_trace
+ "builds"
+ end
+
+ def path_to_trace
+ "#{dir_to_trace}/#{id}.log"
+ end
end