Adición de componentes de flujo de trabajo a un esquema - Amazon CodeCatalyst

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

Los CodeCatalyst proyectos de Amazon utilizan un flujo de trabajo para ejecutar acciones en función de los desencadenantes. 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.

Para importar componentes de flujos de trabajo de Amazon CodeCatalyst blueprints

Añada lo siguiente al archivo blueprint.ts:

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

Ejemplos de componentes de flujo de trabajo

WorkflowBuilder componente

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

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

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