

Amazon CodeCatalyst ist nicht mehr offen für Neukunden. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Wie migriert man von CodeCatalyst](migration.md).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Hinzufügen von Workflow-Komponenten zu einem Blueprint
<a name="comp-workflow-bp"></a>

Ein Workflow wird von CodeCatalyst Amazon-Projekten verwendet, um Aktionen auf der Grundlage von Triggern auszuführen. Sie können Workflow-Komponenten verwenden, um Workflow-YAML-Dateien zu erstellen und zusammenzustellen. Weitere Informationen finden Sie unter [YAML-Workflow-Definition](workflow-reference.md).

**So importieren Sie Workflow-Komponenten von Amazon CodeCatalyst Blueprints**

Fügen Sie in Ihrer `blueprint.ts` Datei Folgendes hinzu:

```
import { WorkflowBuilder, Workflow } from '@amazon-codecatalyst/codecatalyst-workflows'
```

**Topics**
+ [Beispiele für Workflow-Komponenten](#comp-workflows-examples-bp)
+ [Verbindung zu einer Umgebung herstellen](#comp-workflows-connect-env-bp)

## Beispiele für Workflow-Komponenten
<a name="comp-workflows-examples-bp"></a>

### WorkflowBuilder Komponente
<a name="comp-workflows-workflowbuilder-bp"></a>

Sie können eine Klasse verwenden, um eine Workflow-Definition zu erstellen. Die Definition kann einer Workflow-Komponente zum Rendern in einem Repository zugewiesen werden.

```
import { WorkflowBuilder } from '@amazon-codecatalyst/codecatalyst-workflows'

const workflowBuilder = new WorkflowBuilder({} as Blueprint, {
  Name: 'my_workflow',
});

// trigger the workflow on pushes to branch 'main'
workflowBuilder.addBranchTrigger(['main']);

// add a build action
workflowBuilder.addBuildAction({
  // give the action a name
  actionName: 'build_and_do_some_other_stuff',

  // the action pulls from source code
  input: {
    Sources: ['WorkflowSource'],
  },

  // the output attempts to autodiscover test reports, but not in the node modules
  output: {
    AutoDiscoverReports: {
      Enabled: true,
      ReportNamePrefix: AutoDiscovered,
      IncludePaths: ['**/*'],
      ExcludePaths: ['*/node_modules/**/*'],
    },
  },
  // execute some arbitrary steps
  steps: [
    'npm install',
    'npm run myscript',
    'echo hello-world',
  ],
  // add an account connection to the workflow
  environment: convertToWorkflowEnvironment(myEnv),
});
```

### Workflow-bewährte Komponente
<a name="comp-workflows-projen-bp"></a>

Das folgende Beispiel zeigt, wie eine Projen-Komponente verwendet werden kann, um ein Workflow-YAML in ein Repository zu schreiben:

```
import { Workflow } from '@amazon-codecatalyst/codecatalyst-workflows'

...

const repo = new SourceRepository
const blueprint = this;
const workflowDef = workflowBuilder.getDefinition()

// creates a workflow.yaml at .aws/workflows/${workflowDef.name}.yaml
new Workflow(blueprint, repo, workflowDef);

// can also pass in any object and have it rendered as a yaml. This is unsafe and may not produce a valid workflow
new Workflow(blueprint, repo, {... some object ...});
```

## Verbindung zu einer Umgebung herstellen
<a name="comp-workflows-connect-env-bp"></a>

Viele Workflows müssen in einer AWS-Kontoverbindung ausgeführt werden. Workflows bewältigen dies, indem sie es Aktionen ermöglichen, eine Verbindung zu Umgebungen mit Konto- und Rollennamenspezifikationen herzustellen.

```
import { convertToWorkflowEnvironment } from '@amazon-codecatalyst/codecatalyst-workflows'


const myEnv = new Environment(...);

// can be passed into a workflow constructor
const workflowEnvironment = convertToWorkflowEnvironment(myEnv);


// add a build action
workflowBuilder.addBuildAction({
  ...
  // add an account connection to the workflow
  environment: convertToWorkflowEnvironment(myEnv),
});
```