2015-03-13 22:34:28 +00:00
|
|
|
<div class="repo-panel-builds-element">
|
2015-07-14 09:39:49 +00:00
|
|
|
<div class="feedback-bar" feedback="feedback"></div>
|
2015-03-13 22:34:28 +00:00
|
|
|
<div class="tab-header-controls">
|
|
|
|
<button class="btn btn-primary" ng-click="showNewBuildDialog()">
|
2016-09-29 13:19:21 +00:00
|
|
|
<i class="fa fa-play"></i> Start New Build
|
2015-03-13 22:34:28 +00:00
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
<h3 class="tab-header">Repository Builds</h3>
|
|
|
|
|
|
|
|
<!-- Builds -->
|
2015-05-13 18:55:39 +00:00
|
|
|
<div class="co-panel" id="repoBuilds">
|
2015-03-13 22:34:28 +00:00
|
|
|
<!-- Builds header controls -->
|
|
|
|
<div class="co-panel-heading">
|
|
|
|
<div class="heading-controls hidden-sm hidden-xs">
|
|
|
|
<span class="filter-control" filter="options.filter" value="recent">Recent Builds</span>
|
|
|
|
<span class="filter-control" filter="options.filter" value="48hour">Last 48 Hours</span>
|
|
|
|
<span class="filter-control" filter="options.filter" value="30day">Last 30 days</span>
|
|
|
|
</div>
|
|
|
|
<div class="heading-title">
|
|
|
|
<i class="fa fa-tasks"></i>
|
|
|
|
Build History
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Builds list content -->
|
|
|
|
<div class="panel-body">
|
|
|
|
<div class="resource-view" resource="buildsResource" error-message="'Could not load build information'">
|
|
|
|
|
|
|
|
<!-- No builds found -->
|
|
|
|
<div class="empty" ng-if="!fullBuilds.length">
|
|
|
|
<div class="empty-primary-msg">No matching builds found</div>
|
|
|
|
<div class="empty-secondary-msg">
|
|
|
|
Please change the filter above to search for more builds.
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Builds list table -->
|
|
|
|
<table class="co-table" ng-if="fullBuilds.length">
|
|
|
|
<thead>
|
|
|
|
<td class="status-col"></td>
|
2015-04-08 18:39:52 +00:00
|
|
|
<td ng-class="tablePredicateClass('id', options.predicate, options.reverse)"
|
|
|
|
style="min-width: 85px;">
|
2016-03-22 18:15:54 +00:00
|
|
|
<a ng-click="orderBy('id')">Build ID</a>
|
2015-03-13 22:34:28 +00:00
|
|
|
</td>
|
2015-04-20 21:42:33 +00:00
|
|
|
<td class="hidden-xs"
|
|
|
|
ng-class="tablePredicateClass('commit_sha', options.predicate, options.reverse)"
|
2015-04-08 18:39:52 +00:00
|
|
|
style="min-width: 115px">
|
2016-03-22 18:15:54 +00:00
|
|
|
<a ng-click="orderBy('commit_sha')">Triggered By</a>
|
2015-03-13 22:34:28 +00:00
|
|
|
</td>
|
2015-04-08 18:39:52 +00:00
|
|
|
<td ng-class="tablePredicateClass('started_datetime', options.predicate, options.reverse)" style="min-width: 120px;">
|
2016-03-22 18:15:54 +00:00
|
|
|
<a ng-click="orderBy('started_datetime')">Date Started</a>
|
2015-03-13 22:34:28 +00:00
|
|
|
</td>
|
2015-04-20 21:42:33 +00:00
|
|
|
<td class="hidden-xs"
|
|
|
|
ng-class="tablePredicateClass('tags', options.predicate, options.reverse)"
|
2015-04-08 18:39:52 +00:00
|
|
|
style="min-width: 66px;">
|
2016-03-22 18:15:54 +00:00
|
|
|
<a ng-click="orderBy('tags')">Tags</a>
|
2015-03-18 16:13:07 +00:00
|
|
|
</td>
|
2015-03-13 22:34:28 +00:00
|
|
|
</thead>
|
|
|
|
|
|
|
|
<tr ng-repeat="build in fullBuilds">
|
|
|
|
<td><span class="build-state-icon" build="build"></span></td>
|
|
|
|
<td>
|
|
|
|
<a href="/repository/{{ repository.namespace }}/{{ repository.name }}/build/{{ build.id }}">{{ build.id.substr(0, 8) }}</a>
|
|
|
|
</td>
|
2015-04-20 21:42:33 +00:00
|
|
|
<td class="hidden-xs">
|
2015-03-18 16:13:07 +00:00
|
|
|
<div class="triggered-build-description" build="build"></div>
|
|
|
|
</td>
|
|
|
|
<td>{{ build.started | amCalendar }}</td>
|
2015-04-20 21:42:33 +00:00
|
|
|
<td class="hidden-xs">
|
2015-03-13 22:34:28 +00:00
|
|
|
<span class="building-tag" ng-repeat="tag in build.building_tags">
|
2015-04-08 18:39:52 +00:00
|
|
|
<span class="tag-span"><i class="fa fa-tag"></i>{{ tag }}</span>
|
2015-03-13 22:34:28 +00:00
|
|
|
</span>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div> <!-- /Builds -->
|
|
|
|
|
|
|
|
<!-- Build Triggers -->
|
2015-05-13 18:55:39 +00:00
|
|
|
<div class="co-panel" ng-if="repository.can_admin && TriggerService.getTypes().length" id="repoBuildTriggers">
|
2015-03-13 22:34:28 +00:00
|
|
|
<!-- Builds header controls -->
|
|
|
|
<div class="co-panel-heading">
|
|
|
|
<i class="fa fa-flash"></i>
|
|
|
|
Build Triggers
|
|
|
|
|
2015-08-26 16:08:59 +00:00
|
|
|
<div class="heading-controls hidden-xs">
|
2015-03-13 22:34:28 +00:00
|
|
|
<!-- Add Build Trigger -->
|
2015-05-13 18:55:39 +00:00
|
|
|
<div class="dropdown" id="addBuildTrigger">
|
2015-03-13 22:34:28 +00:00
|
|
|
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
|
|
|
|
Create Build Trigger
|
|
|
|
<b class="caret"></b>
|
|
|
|
</button>
|
|
|
|
<ul class="dropdown-menu dropdown-menu-right pull-right">
|
2015-04-24 19:13:08 +00:00
|
|
|
<li ng-repeat="type in TriggerService.getTypes()" ng-if="TriggerService.isEnabled(type)">
|
2015-04-21 22:04:25 +00:00
|
|
|
<a href="{{ TriggerService.getRedirectUrl(type, repository.namespace, repository.name) }}" target="{{ TriggerService.getMetadata(type).is_external ? '' : '_self' }}">
|
2015-03-13 22:34:28 +00:00
|
|
|
<i class="fa fa-lg" ng-class="TriggerService.getMetadata(type).icon"></i>
|
|
|
|
{{ TriggerService.getTitle(type) }}
|
|
|
|
</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Builds list content -->
|
|
|
|
<div class="panel-body">
|
|
|
|
<div class="resource-view" resource="triggersResource" error-message="'Could not load build triggers'">
|
|
|
|
<!-- No Triggers defined -->
|
|
|
|
<div class="empty" ng-if="!triggers.length">
|
|
|
|
<div class="empty-primary-msg">No build triggers defined</div>
|
|
|
|
<div class="empty-secondary-msg">
|
|
|
|
Build triggers invoke builds whenever the triggered condition is met (source control push, webhook, etc)
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Triggers list -->
|
2015-04-20 21:42:33 +00:00
|
|
|
<table class="cor-table" ng-if="triggers.length">
|
2015-03-13 22:34:28 +00:00
|
|
|
<thead>
|
|
|
|
<td>Trigger Name</td>
|
|
|
|
<td>Dockerfile Location</td>
|
|
|
|
<td>Branches/Tags</td>
|
|
|
|
<td>Pull Robot</td>
|
|
|
|
<td class="options-col"></td>
|
|
|
|
</thead>
|
|
|
|
|
|
|
|
<tr ng-repeat="trigger in triggers | filter:{'is_active':false}">
|
|
|
|
<td colspan="5" style="text-align: center">
|
2016-09-27 14:52:34 +00:00
|
|
|
This build trigger has not had its setup completed:
|
|
|
|
<a ng-click="deleteTrigger(trigger)">Delete Trigger</a>
|
2015-03-13 22:34:28 +00:00
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
|
|
|
|
<tr ng-repeat="trigger in triggers | filter:{'is_active':true}">
|
2015-06-29 09:36:39 +00:00
|
|
|
<td><div class="trigger-description" trigger="trigger"></div></td>
|
2015-04-14 18:11:02 +00:00
|
|
|
<td>{{ trigger.config.subdir || '/' }}</td>
|
|
|
|
<td>{{ trigger.config.branchtag_regex || 'All' }}</td>
|
2015-03-13 22:34:28 +00:00
|
|
|
<td>
|
|
|
|
<span class="entity-reference" entity="trigger.pull_robot" ng-if="trigger.pull_robot"></span>
|
2015-04-30 19:33:19 +00:00
|
|
|
<span class="empty" ng-if="!trigger.pull_robot">(None)</span>
|
2015-03-13 22:34:28 +00:00
|
|
|
</td>
|
|
|
|
<td>
|
|
|
|
<span class="cor-options-menu">
|
2015-04-22 21:07:16 +00:00
|
|
|
<span ng-if="trigger.config.credentials" class="cor-option" option-click="showTriggerCredentialsModal(trigger)">
|
2015-04-16 18:58:25 +00:00
|
|
|
<i class="fa fa-unlock-alt"></i> View Credentials
|
2015-04-14 18:11:02 +00:00
|
|
|
</span>
|
2015-03-18 20:26:27 +00:00
|
|
|
<span class="cor-option" option-click="askRunTrigger(trigger)"
|
2016-09-09 20:54:46 +00:00
|
|
|
ng-class="trigger.can_invoke ? '' : 'disabled'">
|
2015-03-13 22:34:28 +00:00
|
|
|
<i class="fa fa-chevron-right"></i> Run Trigger Now
|
|
|
|
</span>
|
|
|
|
<span class="cor-option" option-click="askDeleteTrigger(trigger)">
|
|
|
|
<i class="fa fa-times"></i> Delete Trigger
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
</td>
|
|
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div> <!-- /Build Triggers -->
|
|
|
|
|
2015-04-14 18:11:02 +00:00
|
|
|
<!-- Dialogs -->
|
|
|
|
|
2015-04-16 18:58:25 +00:00
|
|
|
<!-- Trigger Credentials dialog -->
|
|
|
|
<div class="trigger-credentials-dialog" trigger="triggerCredentialsModalTrigger" counter="triggerCredentialsModalCounter"></div>
|
2015-04-14 18:11:02 +00:00
|
|
|
|
2015-03-13 22:34:28 +00:00
|
|
|
<!-- Delete Tag Confirm -->
|
|
|
|
<div class="cor-confirm-dialog"
|
|
|
|
dialog-context="deleteTriggerInfo"
|
|
|
|
dialog-action="deleteTrigger(info.trigger, callback)"
|
|
|
|
dialog-title="Delete Build Trigger"
|
|
|
|
dialog-action-title="Delete Trigger">
|
|
|
|
Are you sure you want to delete this build trigger? No further builds will be automatically
|
|
|
|
started.
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Dockerfile build dialog -->
|
|
|
|
<div class="dockerfile-build-dialog"
|
|
|
|
show-now="showBuildDialogCounter"
|
|
|
|
repository="repository"
|
|
|
|
build-started="handleBuildStarted(build)">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!-- Manual trigger dialog -->
|
|
|
|
<div class="manual-trigger-build-dialog"
|
|
|
|
repository="repository"
|
|
|
|
trigger="currentStartTrigger"
|
|
|
|
counter="showTriggerStartDialogCounter"
|
2015-08-20 23:24:51 +00:00
|
|
|
build-started="handleBuildStarted(build)"></div>
|
2015-03-13 22:34:28 +00:00
|
|
|
|
2015-04-14 18:11:02 +00:00
|
|
|
<!-- /Dialogs -->
|
2015-03-27 21:07:06 +00:00
|
|
|
</div>
|