extends base block append head title #{Repo.Name} ยท #{Build.Number} block header ol li a[href="/"+Repo.FullName] | #{Repo.Owner} / #{Repo.Name} li.separator i.material-icons chevron_right li #{Build.Number} block content div.container-fluid div.row div.col-md-4.sticky div.build-summary div div[class=Build.Status][style="display:none"] #{Build.Status} h3 #{Build.Message} p em #{Build.Author} span authored em[data-livestamp=Build.Created] span to em #{Build.Branch} div.job-list $curr = Job $build = Build $repo = Repo each $job in Jobs a[href="/" + $repo.FullName +"/"+ $build.Number+"/"+$job.Number][data-job=$job.Number] .active ? $curr.Number == $job.Number div div.status[class=$job.Status] #{$job.Status} div if len($job.Environment) != 0 h3 each $key, $val in $job.Environment div.env #{$key}=#{$val} div[class="msg-pending"] .hidden ? $job.Status != "pending" | pending assignment to a worker div[class="msg-running"] .hidden ? $job.Status != "running" | started span[data-livestamp=$job.Started] div[class="msg-finished"] .hidden ? $job.Finished == 0 | finished span[data-livestamp=$job.Finished] div[class="msg-exited"] .hidden ? $job.Finished == 0 | with exit code span #{$job.ExitCode} div.build-btn-group button.btn.btn-info.hidden#restart restart button.btn.btn-info.hidden#cancel cancel div.col-md-8 pre#output button.tail#tail i.material-icons expand_more block append scripts script $('.sticky').Stickyfill(); var repo = #{json(Repo.FullName)}; var build = #{json(Build.Number)}; var job = #{json(Job.Number)}; var status = #{json(Job.Status)}; var view = new JobViewModel(repo, build, job, status);