diff options
-rw-r--r-- | app/models/build.rb | 6 | ||||
-rw-r--r-- | app/models/commit.rb | 3 | ||||
-rw-r--r-- | app/services/create_commit_service.rb | 2 | ||||
-rw-r--r-- | app/views/builds/_build.html.haml | 6 |
4 files changed, 12 insertions, 5 deletions
diff --git a/app/models/build.rb b/app/models/build.rb index 3bb76eb..03393c5 100644 --- a/app/models/build.rb +++ b/app/models/build.rb @@ -121,7 +121,7 @@ class Build < ActiveRecord::Base state :canceled, value: 'canceled' end - delegate :ref, :sha, :short_sha, :before_sha, + delegate :sha, :short_sha, :before_sha, to: :commit, prefix: false def trace_html @@ -201,6 +201,10 @@ class Build < ActiveRecord::Base end end + def ref + read_attribute(:ref) || commit.ref + end + def for_tag? if job && job.build_tags true diff --git a/app/models/commit.rb b/app/models/commit.rb index 13630bc..5720b26 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -105,10 +105,11 @@ class Commit < ActiveRecord::Base end end - def create_builds_for_tag + def create_builds_for_tag(tag_name = '') project.jobs.where(build_tags: true).active.map do |job| build = builds.new(commands: job.commands) build.job = job + build.ref = tag_name build.save build end diff --git a/app/services/create_commit_service.rb b/app/services/create_commit_service.rb index ba74e88..f42b411 100644 --- a/app/services/create_commit_service.rb +++ b/app/services/create_commit_service.rb @@ -41,7 +41,7 @@ class CreateCommitService end if origin_ref.start_with?('refs/tags/') - commit.create_builds_for_tag + commit.create_builds_for_tag(ref) else commit.create_builds end diff --git a/app/views/builds/_build.html.haml b/app/views/builds/_build.html.haml index 523c335..1bf7415 100644 --- a/app/views/builds/_build.html.haml +++ b/app/views/builds/_build.html.haml @@ -8,9 +8,11 @@ %td - if build.job - - if build.for_tag? - %i.icon-tag = build.job.name + - if build.for_tag? + %span.label.label-primary + %i.icon-tag + = build.ref %td.duration - if build.duration |