블루프린트에 워크플로 구성 요소 추가 - Amazon CodeCatalyst

블루프린트에 워크플로 구성 요소 추가

워크플로는 Amazon CodeCatalyst 프로젝트에서 트리거를 기반으로 작업을 실행하는 데 사용됩니다. 워크플로 구성 요소를 사용하여 워크플로 YAML 파일을 빌드하고 통합할 수 있습니다. 자세한 내용은 워크플로 YAML 정의 섹션을 참조하십시오.

Amazon CodeCatalyst 블루프린트 워크플로 구성 요소를 가져오려면

다음을 blueprint.ts 파일에 추가합니다.

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

워크플로 구성 요소 예시

WorkflowBuilder 구성 요소

클래스를 사용하여 워크플로 정의를 빌드할 수 있습니다. 리포지토리에서 렌더링하기 위해 워크플로 구성 요소에 정의를 부여할 수 있습니다.

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 Projen 구성 요소

다음 예시에서는 Projen 구성 요소를 사용하여 워크플로 YAML을 리포지토리에 쓰는 방법을 보여줍니다.

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

환경에 연결

많은 워크플로가 AWS 계정 연결에서 실행되어야 합니다. 워크플로는 작업이 계정 및 역할 이름 사양이 있는 환경에 연결되도록 허용하여 이를 처리합니다.

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