

Amazon ya no CodeCatalyst está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cómo migrar desde CodeCatalyst](migration.md).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Adición de componentes de flujo de trabajo a un esquema
<a name="comp-workflow-bp"></a>

Los proyectos de Amazon CodeCatalyst utilizan un flujo de trabajo para ejecutar acciones basadas en desencadenadores. Puede usar los componentes del flujo de trabajo para crear y componer archivos YAML del flujo de trabajo. Para obtener más información, consulte [Definición de flujo de trabajo en YAML](workflow-reference.md).

**Importación de componentes de flujo de trabajo de esquemas de Amazon CodeCatalyst**

Añada lo siguiente al archivo `blueprint.ts`:

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

**Topics**
+ [Ejemplos de componentes de flujo de trabajo](#comp-workflows-examples-bp)
+ [Conexión a un entorno](#comp-workflows-connect-env-bp)

## Ejemplos de componentes de flujo de trabajo
<a name="comp-workflows-examples-bp"></a>

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

Puede usar una clase para crear una definición de flujo de trabajo. La definición se puede asignar a un componente del flujo de trabajo para representarlo en un repositorio.

```
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 de flujo de trabajo Projen
<a name="comp-workflows-projen-bp"></a>

El siguiente ejemplo muestra cómo se puede usar un componente de Projen para escribir un flujo de trabajo de YAML en un repositorio:

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

## Conexión a un entorno
<a name="comp-workflows-connect-env-bp"></a>

Muchos flujos de trabajo deben ejecutarse en una conexión de cuenta de AWS. Los flujos de trabajo se encargan de ello al permitir que las acciones se conecten a entornos con especificaciones de nombre de cuenta y rol.

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