

Amazon non CodeCatalyst è più aperta a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Come migrare da CodeCatalyst](migration.md).

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiungere componenti del flusso di lavoro a un blueprint
<a name="comp-workflow-bp"></a>

Un flusso di lavoro viene utilizzato dai CodeCatalyst progetti Amazon per eseguire azioni basate su trigger. Puoi utilizzare i componenti del flusso di lavoro per creare e mettere insieme file YAML del flusso di lavoro. Per ulteriori informazioni, consulta [Definizione YAML del flusso di lavoro](workflow-reference.md).

**Per importare i componenti dei flussi di lavoro di Amazon CodeCatalyst Blueprint**

Nel tuo `blueprint.ts` file, aggiungi quanto segue:

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

**Topics**
+ [Esempi di componenti del flusso di lavoro](#comp-workflows-examples-bp)
+ [Connessione a un ambiente](#comp-workflows-connect-env-bp)

## Esempi di componenti del flusso di lavoro
<a name="comp-workflows-examples-bp"></a>

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

È possibile utilizzare una classe per creare una definizione di flusso di lavoro. La definizione può essere data a un componente del flusso di lavoro per il rendering in un repository.

```
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),
});
```

### Componente Workflow Project
<a name="comp-workflows-projen-bp"></a>

L'esempio seguente mostra come utilizzare un componente Projen per scrivere un flusso di lavoro YAML in un repository:

```
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 ...});
```

## Connessione a un ambiente
<a name="comp-workflows-connect-env-bp"></a>

Molti flussi di lavoro devono essere eseguiti in una connessione a un account AWS. I flussi di lavoro gestiscono questo problema consentendo alle azioni di connettersi ad ambienti con specifiche di account e nomi di ruolo.

```
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),
});
```