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.
Añadir componentes de flujo de trabajo a un blueprint
Los CodeCatalyst proyectos de Amazon utilizan un flujo de trabajo para ejecutar acciones en función de los desencadenantes. Puedes usar los componentes del flujo de trabajo para crear y armar archivos YAML del flujo de trabajo. Para obtener más información, consulte YAMLDefinición del flujo de trabajo.
Para importar componentes de flujos de trabajo de Amazon CodeCatalyst blueprints
En su blueprint.ts
archivo, añada lo siguiente:
import { WorkflowBuilder, Workflow } from '@amazon-codecatalyst/codecatalyst-workflows'
Ejemplos de componentes del 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 renderizarlo 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 del proyecto de flujo de trabajo
El siguiente ejemplo muestra cómo se puede usar un componente de Projen para escribir un flujo de trabajo 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 ...});
Conectarse a un entorno
Muchos flujos de trabajo deben ejecutarse en una conexión de cuenta de AWS. Los flujos de trabajo resuelven este problema 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), });