Example #1
0
 mock.inject(function() {
   const config: IStageTypeConfig = { key: 'a', alias: 'a1' } as IStageTypeConfig;
   Registry.pipeline.registerStage(config);
   expect(Registry.pipeline.getStageConfig({ type: 'a' } as IStage)).toEqual(config);
   expect(Registry.pipeline.getStageConfig({ type: 'a1' } as IStage)).toEqual(config);
   expect(Registry.pipeline.getStageConfig({ type: 'b' } as IStage)).toBe(null);
 }),
Example #2
0
 mock.inject(function() {
   Registry.pipeline.registerStage({ key: 'a', useBaseProvider: true } as IStageTypeConfig);
   Registry.pipeline.registerStage({ key: 'b', provides: 'a', cloudProvider: 'aws' } as IStageTypeConfig);
   expect(Registry.pipeline.getConfigurableStageTypes([awsProviderAccount]) as any[]).toEqual([
     { key: 'a', useBaseProvider: true, cloudProviders: ['aws'] },
   ]);
 }),
Example #3
0
 mock.inject(function() {
   Registry.pipeline.registerStage({ key: 'a', providesFor: ['aws'] } as IStageTypeConfig);
   const providerAccounts = [awsProviderAccount, gcpProviderAccount];
   expect(Registry.pipeline.getConfigurableStageTypes(providerAccounts) as any[]).toEqual([
     { key: 'a', providesFor: ['aws'], cloudProviders: ['aws'] },
   ]);
 }),
Example #4
0
 mock.inject(function() {
   Registry.pipeline.registerStage({ key: 'c', useBaseProvider: true } as IStageTypeConfig);
   Registry.pipeline.registerStage({ nameToCheckInTest: 'a', key: 'd', provides: 'c' } as IStageTypeConfig);
   Registry.pipeline.registerStage({ nameToCheckInTest: 'b', provides: 'c' } as IStageTypeConfig);
   const providers = Registry.pipeline.getProvidersFor('d');
   expect(providers.length).toBe(2);
   expect(map(providers, 'nameToCheckInTest').sort()).toEqual(['a', 'b']);
 }),
 public static getKindConfig(artifact: IArtifact, isDefault: boolean): IArtifactKindConfig {
   if (artifact == null || artifact.customKind || artifact.kind === 'custom') {
     return Registry.pipeline.getCustomArtifactKind();
   }
   const kinds = isDefault ? Registry.pipeline.getDefaultArtifactKinds() : Registry.pipeline.getMatchArtifactKinds();
   const inferredKindConfig = kinds.find(k => k.type === artifact.type);
   if (inferredKindConfig !== undefined) {
     return inferredKindConfig;
   }
   return Registry.pipeline.getCustomArtifactKind();
 }
Example #6
0
 mock.inject(function() {
   Registry.pipeline.registerStage({ key: 'a', useBaseProvider: true } as IStageTypeConfig);
   Registry.pipeline.registerStage({
     key: 'b',
     provides: 'a',
     cloudProvider: 'aws',
     providesFor: ['aws', 'gcp', 'titus'],
   } as IStageTypeConfig);
   const providerAccounts = [awsProviderAccount, titusProviderAccount];
   expect(Registry.pipeline.getConfigurableStageTypes(providerAccounts) as any[]).toEqual([
     { key: 'a', useBaseProvider: true, cloudProviders: ['aws', 'titus'] },
   ]);
 }),
Example #7
0
module(S3_ARTIFACT, []).config(() => {
  Registry.pipeline.registerArtifactKind({
    label: 'S3',
    type: 's3/object',
    description: 'An S3 object.',
    key: 's3',
    isDefault: false,
    isMatch: true,
    controller: function(artifact: IArtifact) {
      'ngInject';
      this.artifact = artifact;
      this.artifact.type = 's3/object';
    },
    controllerAs: 'ctrl',
    editCmp: S3ArtifactEditor,
    template: `
<div class="col-md-12">
  <div class="form-group row">
    <label class="col-md-2 sm-label-right">
      Object path
      <help-field key="pipeline.config.expectedArtifact.s3.name"></help-field>
    </label>
    <div class="col-md-8">
      <input type="text"
             placeholder="s3://bucket/path/to/file"
             class="form-control input-sm"
             ng-model="ctrl.artifact.name"/>
    </div>
  </div>
</div>
`,
  });
});
Example #8
0
module(DOCKER_ARTIFACT, []).config(() => {
  Registry.pipeline.registerArtifactKind({
    label: 'Docker',
    type: 'docker/image',
    isDefault: false,
    isMatch: true,
    // docker hub image artifacts can be bound to manifests without an associated artifact-account
    isPubliclyAccessible: true,
    description: 'A Docker image to be deployed.',
    key: 'docker',
    controller: function(artifact: IArtifact) {
      'ngInject';
      this.artifact = artifact;
      this.artifact.type = 'docker/image';
    },
    controllerAs: 'ctrl',
    editCmp: DockerArtifactEditor,
    template: `
<div class="col-md-12">
  <div class="form-group row">
    <label class="col-md-2 sm-label-right">
      Docker image
      <help-field key="pipeline.config.expectedArtifact.docker.name"></help-field>
    </label>
    <div class="col-md-8">
      <input type="text"
             placeholder="gcr.io/project/image"
             class="form-control input-sm"
             ng-model="ctrl.artifact.name"/>
    </div>
  </div>
</div>
`,
  });
});
Example #9
0
module(GCS_ARTIFACT, []).config(() => {
  Registry.pipeline.mergeArtifactKind({
    label: 'GCS',
    typePattern: ArtifactTypePatterns.GCS_OBJECT,
    type: 'gcs/object',
    description: 'A GCS object.',
    key: 'gcs',
    isDefault: false,
    isMatch: true,
    controller: function(artifact: IArtifact) {
      this.artifact = artifact;
      this.artifact.type = 'gcs/object';
    },
    controllerAs: 'ctrl',
    template: `
<div class="col-md-12">
  <div class="form-group row">
    <label class="col-md-2 sm-label-right">
      Object path
      <help-field key="pipeline.config.expectedArtifact.gcs.name"></help-field>
    </label>
    <div class="col-md-8">
      <input type="text"
             placeholder="gs://bucket/path/to/file"
             class="form-control input-sm"
             ng-model="ctrl.artifact.name"/>
    </div>
  </div>
</div>
`,
  });
});
Example #10
0
module(GITLAB_ARTIFACT, []).config(() => {
  Registry.pipeline.mergeArtifactKind({
    label: 'Gitlab',
    typePattern: ArtifactTypePatterns.GITLAB_FILE,
    type: 'gitlab/file',
    description: 'A file stored in git, hosted by Gitlab.',
    key: 'gitlab',
    isDefault: false,
    isMatch: true,
    controller: function(artifact: IArtifact) {
      this.artifact = artifact;
      this.artifact.type = 'gitlab/file';
    },
    controllerAs: 'ctrl',
    template: `
<div class="col-md-12">
  <div class="form-group row">
    <label class="col-md-2 sm-label-right">
      File path
      <help-field key="pipeline.config.expectedArtifact.git.name"></help-field>
    </label>
    <div class="col-md-8">
      <input type="text"
             placeholder="manifests/frontend.yaml"
             class="form-control input-sm"
             ng-model="ctrl.artifact.name"/>
    </div>
  </div>
</div>
`,
  });
});