Skip to content

Commit

Permalink
fix(nexus): nexus trigger selectable in UI (#7381)
Browse files Browse the repository at this point in the history
  • Loading branch information
claymccoy committed Sep 13, 2019
1 parent 04498f1 commit 23540b6
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 0 deletions.
6 changes: 6 additions & 0 deletions app/scripts/modules/core/src/domain/ITrigger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@ export interface IArtifactoryTrigger extends ITrigger {
type: 'artifactory';
}

export interface INexusTrigger extends ITrigger {
nexusSearchName: string;
nexusRepository: string;
type: 'nexus';
}

export interface IGitTrigger extends ITrigger {
source: 'stash' | 'github' | 'bitbucket' | 'gitlab';
secret?: string;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
'use strict';

import './artifactory/artifactory.trigger';
import './nexus/nexus.trigger';
import './concourse/concourse.trigger';
import './cron/cron.trigger';
import './git/git.trigger';
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import * as React from 'react';

import { FormikFormField, ReactSelectInput, useLatestPromise } from 'core/presentation';

import { NexusReaderService } from './nexusReader.service';

export function NexusTrigger() {
const fetchNames = useLatestPromise(() => NexusReaderService.getNexusNames(), []);

const validationStatus = fetchNames.status === 'REJECTED' ? 'error' : null;
const validationMessage =
fetchNames.status === 'REJECTED'
? `Error fetching nexus names: ${fetchNames.error.data.status} ${fetchNames.error.data.error}`
: null;

return (
<FormikFormField
name="nexusSearchName"
label="Nexus Name"
touched={true}
fastField={false}
validationMessage={validationMessage}
validationStatus={validationStatus}
input={props => (
<ReactSelectInput
{...props}
isLoading={status === 'PENDING'}
placeholder="Select Nexus search name..."
stringOptions={fetchNames.result}
clearable={false}
/>
)}
/>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { Registry } from 'core/registry';
import { NexusTrigger } from './NexusTrigger';
import { ArtifactTypePatterns, excludeAllTypesExcept } from 'core/artifact';

Registry.pipeline.registerTrigger({
label: 'Nexus',
description: 'Executes the pipeline on a Nexus repo update',
key: 'nexus',
component: NexusTrigger,
validators: [],
excludedArtifactTypePatterns: excludeAllTypesExcept(ArtifactTypePatterns.MAVEN_FILE),
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { IPromise } from 'angular';

import { API } from 'core/api/ApiService';

export class NexusReaderService {
public static getNexusNames(): IPromise<string[]> {
return API.one('nexus')
.one('names')
.get();
}
}
1 change: 1 addition & 0 deletions halconfig/settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,7 @@ window.spinnakerSettings = {
pubsubProviders: ['google'], // TODO(joonlim): Add amazon once it is confirmed that amazon pub/sub works.
triggerTypes: [
'artifactory',
'nexus',
'concourse',
'cron',
'docker',
Expand Down
1 change: 1 addition & 0 deletions settings.js
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ window.spinnakerSettings = {
searchVersion: 1,
triggerTypes: [
'artifactory',
'nexus',
'concourse',
'cron',
'docker',
Expand Down

0 comments on commit 23540b6

Please sign in to comment.