

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ブループリントへのワークフローコンポーネントの追加
<a name="comp-workflow-bp"></a>

ワークフローは、トリガーに基づいてアクションを実行するために Amazon CodeCatalyst プロジェクトによって使用されます。ワークフローコンポーネントを使用して、ワークフロー YAML ファイルのビルドと作成ができます。詳細については、「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

**Amazon CodeCatalyst ブループリントワークフローコンポーネントをインポートするには**

`blueprint.ts` ファイルに次を追加します。

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

**Topics**
+ [ワークフローコンポーネントの例](#comp-workflows-examples-bp)
+ [環境への接続](#comp-workflows-connect-env-bp)

## ワークフローコンポーネントの例
<a name="comp-workflows-examples-bp"></a>

### WorkflowBuilder コンポーネント
<a name="comp-workflows-workflowbuilder-bp"></a>

クラスを使用してワークフロー定義をビルドできます。定義は、リポジトリでレンダリングするためのワークフローコンポーネントに指定できます。

```
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 コンポーネント
<a name="comp-workflows-projen-bp"></a>

次の例は、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 ...});
```

## 環境への接続
<a name="comp-workflows-connect-env-bp"></a>

多くのワークフローは、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),
});
```