156 lines
7.9 KiB
HTML
156 lines
7.9 KiB
HTML
<div class="setup-trigger-directive-element">
|
|
|
|
<!-- Modal message dialog -->
|
|
<div class="modal fade" id="setupTriggerModal">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
|
<h4 class="modal-title">Setup new build trigger</h4>
|
|
</div>
|
|
<div class="modal-body" ng-show="currentView == 'activating'">
|
|
<span class="quay-spinner"></span> Setting up trigger...
|
|
</div>
|
|
<div class="modal-body" ng-show="currentView != 'activating'">
|
|
<!-- Trigger-specific setup -->
|
|
<div class="trigger-description-element trigger-option-section" ng-switch on="trigger.service">
|
|
<div ng-switch-when="github">
|
|
<div class="trigger-setup-github" repository="repository" trigger="trigger"
|
|
next-step-counter="nextStepCounter" current-step-valid="state.stepValid"
|
|
analyze="checkAnalyze(isValid)"></div>
|
|
</div>
|
|
<div ng-switch-when="custom-git">
|
|
<div class="trigger-setup-custom" repository="repository" trigger="trigger"
|
|
next-step-counter="nextStepCounter" current-step-valid="state.stepValid"
|
|
analyze="checkAnalyze(isValid)"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Loading pull information -->
|
|
<div ng-show="currentView == 'analyzing'">
|
|
<span class="quay-spinner"></span> Checking pull credential requirements...
|
|
</div>
|
|
|
|
<!-- Pull information -->
|
|
<div class="trigger-option-section" ng-show="currentView == 'analyzed'">
|
|
|
|
<!-- Messaging -->
|
|
<!-- TODO(jschorr): eventually ng-switch on pullINfo.analysis.status -->
|
|
<div class="alert alert-danger" ng-if="pullInfo.analysis.status == 'error'">
|
|
{{ pullInfo.analysis.message }}
|
|
</div>
|
|
<div class="alert alert-warning" ng-if="pullInfo.analysis.status == 'warning'">
|
|
{{ pullInfo.analysis.message }}
|
|
</div>
|
|
<div class="alert alert-warning" ng-if="pullInfo.analysis.status == 'notimplemented'">
|
|
<p>For {{ TriggerService.getTitle(trigger.service) }} triggers, we are unable to determine dependencies automatically.</p>
|
|
<p>If the git repository being built depends on a private base image, you must manually select a robot account with the proper permissions.</p>
|
|
</div>
|
|
<div class="dockerfile-found" ng-if="pullInfo.analysis.is_public === false">
|
|
<div class="dockerfile-found-content">
|
|
A robot account is <strong>required</strong> for this build trigger because
|
|
|
|
the
|
|
<a href="{{ pullInfo.analysis.dockerfile_url }}" ng-if="pullInfo.analysis.dockerfile_url" target="_blank">
|
|
Dockerfile found
|
|
</a>
|
|
<span ng-if="!pullInfo.analysis.dockerfile_url">Dockerfile found</span>
|
|
|
|
pulls from the private <span class="registry-name"></span> repository
|
|
|
|
<a href="/repository/{{ pullInfo.analysis.namespace }}/{{ pullInfo.analysis.name }}" target="_blank">
|
|
{{ pullInfo.analysis.namespace }}/{{ pullInfo.analysis.name }}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div style="margin-bottom: 12px">
|
|
Please select the credentials to use when pulling the base image:
|
|
</div>
|
|
<div ng-if="!isNamespaceAdmin(repository.namespace)" style="color: #aaa;">
|
|
<strong>Note:</strong> In order to set pull credentials for a build trigger, you must be an
|
|
Administrator of the namespace <strong>{{ repository.namespace }}</strong>
|
|
</div>
|
|
|
|
<!-- Namespace admin -->
|
|
<div ng-show="isNamespaceAdmin(repository.namespace)">
|
|
<!-- Select credentials -->
|
|
<div class="btn-group btn-group-sm">
|
|
<button type="button" class="btn btn-default"
|
|
ng-class="pullInfo.is_public ? 'active btn-info' : ''"
|
|
ng-click="pullInfo.is_public = true">
|
|
None
|
|
</button>
|
|
<button type="button" class="btn btn-default"
|
|
ng-class="pullInfo.is_public ? '' : 'active btn-info'"
|
|
ng-click="pullInfo.is_public = false">
|
|
<i class="fa fa-wrench"></i>
|
|
Robot account
|
|
</button>
|
|
</div>
|
|
|
|
<!-- Robot Select -->
|
|
<div ng-show="!pullInfo.is_public" style="margin-top: 10px">
|
|
<div class="entity-search" namespace="repository.namespace"
|
|
placeholder="'Select robot account for pulling...'"
|
|
current-entity="pullInfo.pull_entity"
|
|
allowed-entities="['robot']"></div>
|
|
|
|
<div ng-if="pullInfo.analysis.robots.length" style="margin-top: 20px; margin-bottom: 0px;">
|
|
<strong>Note</strong>: We've automatically selected robot account
|
|
<span class="entity-reference" entity="pullInfo.analysis.robots[0]"></span>,
|
|
since it has access to the private repository.
|
|
</div>
|
|
<div ng-if="!pullInfo.analysis.robots.length && pullInfo.analysis.name"
|
|
style="margin-top: 20px; margin-bottom: 0px;">
|
|
<strong>Note</strong>: No robot account currently has access to the private repository. Please create one and/or assign access in the
|
|
<a href="/repository/{{ pullInfo.analysis.namespace }}/{{ pullInfo.analysis.name }}/admin" target="_blank">
|
|
repository's admin panel.
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="trigger-option-section" ng-show="currentView == 'postActivation'" ng-switch on="trigger.service">
|
|
<div ng-switch-when="custom-git">
|
|
<div class="alert alert-warning">
|
|
The trigger has been successfully created, but the following first requires action:
|
|
<ul>
|
|
<li>You must give the following public key read access to the git repository.</li>
|
|
<li>You must set your repository to POST to the following URL to trigger a build.</li>
|
|
</ul>
|
|
For more information, refer to the <a href="http://docs.quay.io/guides/custom-trigger.html" target="_blank">Custom Git Triggers documentation</a>.
|
|
</div>
|
|
<p>
|
|
SSH Public Key:
|
|
<div class="copy-box" value="trigger.config.public_key"></div>
|
|
</p>
|
|
<p>
|
|
Webhook Endpoint URL:
|
|
<div class="copy-box" value="trigger.config.webhook_url"></div>
|
|
</p>
|
|
</div>
|
|
<div ng-switch-default>
|
|
<div class="alert alert-success">The trigger has been successfully created.</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-primary" ng-disabled="!state.stepValid"
|
|
ng-click="nextStepCounter = nextStepCounter + 1"
|
|
ng-show="currentView == 'config'">Next</button>
|
|
|
|
<button type="button" class="btn btn-primary"
|
|
ng-disabled="!trigger.$ready || (!pullInfo['is_public'] && !pullInfo['pull_entity'])"
|
|
ng-click="activate()"
|
|
ng-show="currentView == 'analyzed'">Create Trigger</button>
|
|
|
|
<button type="button" class="btn btn-default" data-dismiss="modal">{{ currentView == 'postActivation' ? 'Done' : 'Cancel' }}</button>
|
|
</div>
|
|
</div><!-- /.modal-content -->
|
|
</div><!-- /.modal-dialog -->
|
|
</div><!-- /.modal -->
|
|
</div>
|