

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

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

# ワークフローの問題のトラブルシューティング
<a name="troubleshooting-workflows"></a>

Amazon CodeCatalyst でのワークフローに関連する問題のトラブルシューティングについては、次のセクションを参照してください。ワークフローの詳細については、「[ワークフローを使用して構築、テスト、デプロイするワークフローを使用して構築、テスト、デプロイする](workflow.md)」を参照してください。

**Topics**
+ [「ワークフローが非アクティブです」というメッセージを解決するにはどうすればよいですか?](#troubleshooting-workflows-inactive)
+ [「ワークフロー定義に *n* 個のエラーがあります」というエラーを解決修正するにはどうすればよいですか?](#troubleshooting-workflows-asterisks)
+ [「認証情報が見つかりません」および「ExpiredToken」というエラーを解決するにはどうすればよいですか?](#troubleshooting-workflows-auth-errors-eks)
+ [「サーバーに接続できません」というエラーを解決するにはどうすればよいですか?](#troubleshooting-workflows-unable-connect-eks)
+ [ビジュアルエディタに CodeDeploy フィールドがないのはなぜですか?](#troubleshooting-workflows-codedeploy)
+ [IAM 機能エラーを解決するにはどうすればよいですか?](#troubleshooting-workflows-capabilities)
+ [「npm install」エラーを解決するにはどうすればよいですか?](#troubleshooting-workflows-npm)
+ [複数のワークフローに同じ名前が付いているのはなぜですか?](#troubleshooting-workflows-name)
+ [ワークフロー定義ファイルを別のフォルダに保存できますか?](#troubleshooting-workflows-folder)
+ [ワークフローにアクションを順番に追加するにはどうすればよいですか?](#troubleshooting-workflows-visual)
+ [ワークフローは正常に検証されるのに、ランタイム時に失敗するのはなぜですか?](#troubleshooting-workflows-validation)
+ [自動検出でアクションのレポートが検出されなません](#troubleshooting-reports-auto-discovery)
+ [成功基準を設定した後、自動検出レポートでアクションが失敗します](#troubleshooting-success-auto-discovery)
+ [自動検出で不要なレポートが生成されます](#troubleshooting-unwanted-auto-discovery)
+ [自動検出で、1 つのテストフレームワークに多数の小さなレポートが生成されます](#troubleshooting-reports-combined)
+ [CI/CD に一覧表示されるワークフローがソースリポジトリのワークフローと一致しません](#troubleshooting-workflow-source)
+ [ワークフローを作成したり更新したりできません](#troubleshooting-workflows-branchrules)

## 「ワークフローが非アクティブです」というメッセージを解決するにはどうすればよいですか?
<a name="troubleshooting-workflows-inactive"></a>

**問題**: CodeCatalyst コンソールの **CI/CD **の**ワークフロー**で、ワークフローに次のメッセージが表示されます。

`Workflow is inactive.`

このメッセージは、ワークフロー定義ファイルに、現在使用しているブランチに適用されないトリガーが含まれていることを示します。例えば、ワークフロー定義ファイルには `main` ブランチを参照する `PUSH` トリガーが含まれている場合がありますが、ユーザーが機能ブランチを使用しているとします。機能ブランチで行った変更は `main` に適用されないため、`main` でワークフローの実行が開始されないことから、CodeCatalyst はブランチのワークフローを廃止し、`Inactive` としてマークします。

**解決方法:**

機能ブランチでワークフローを開始する場合は、次を実行します。
+ 機能ブランチのワークフロー定義ファイルで、`Triggers` セクションから `Branches` プロパティを削除します。すると、次のようになります。

  ```
  Triggers:
    - Type: PUSH
  ```

  この設定により、機能ブランチを含む任意のブランチへのプッシュ時にトリガーがアクティブ化されます。トリガーがアクティブ化されると、CodeCatalyst は、プッシュ先のブランチのワークフロー定義ファイルとソースファイルを使用してワークフローの実行を開始します。
+ 機能ブランチのワークフロー定義ファイルで、`Triggers` セクションを削除し、ワークフローを手動で実行します。
+ 機能ブランチのワークフロー定義ファイルで、`PUSH` セクションを変更して、別のブランチ (`main` など) ではなく機能ブランチを参照するようにします。

**重要**  
`main` ブランチにマージするつもりがない場合は、これらの変更をコミットしないように注意してください。

ワークフロー定義ファイルの編集の詳細については、「[ワークフローの作成](workflows-create-workflow.md)」を参照してください。

トリガーについての詳細は、「[トリガーを使用したワークフロー実行の自動的な開始](workflows-add-trigger.md)」を参照してください。

## 「ワークフロー定義に *n* 個のエラーがあります」というエラーを解決修正するにはどうすればよいですか?
<a name="troubleshooting-workflows-asterisks"></a>

**問題:** 次のいずれかのエラーメッセージが表示されます。

**エラー 1:**

**CI/CD** の **[ワークフロー]** ページには、ワークフローの名前の下に次が表示されます。

`Workflow definition has n errors`

**エラー 2:**

ワークフローの編集中に、**[検証]** ボタンを選択すると、CodeCatalyst コンソールの上部に次のメッセージが表示されます。

`The workflow definition has errors. Fix the errors and choose Validate to verify your changes.`

**エラー 3:**

ワークフローの詳細ページに移動すると、**[ワークフロー定義]** フィールドに次のエラーが表示されます。

`n errors`

**解決方法:** 
+ **[CI/CD]**、**[ワークフロー]**、エラーのあるワークフローの名前の順に選択します。上部の **[ワークフロー定義]** フィールドで、エラーへのリンクを選択します。エラーに関する詳細は、ページの下部に表示されます。エラーのトラブルシューティングのヒントに従って問題を解決します。
+ ワークフロー定義ファイルが YAML ファイルであることを確認します。
+ ワークフロー定義ファイルの YAML プロパティが適切なレベルでネストされていることを確認します。ワークフロー定義ファイルでプロパティをネストする方法を確認するには、「[ワークフロー YAML 定義](workflow-reference.md)」を参照するか、アクションのドキュメント (「[ワークフローへのアクションの追加](workflows-add-action.md)」からリンクされている) を参照してください。
+ アスタリスク (`*`) やその他の特殊文字が適切にエスケープされていることを確認してください。エスケープするには、一重引用符または二重引用符を追加します。例えば、次のようになります。

  ```
  Outputs:      
    Artifacts:
      - Name: myartifact
        Files:
          - "**/*"
  ```

  ワークフロー定義ファイルの特殊文字の詳細については、「[構文ガイドラインと規則](workflow-reference.md#workflow.terms.syntax.conv)」を参照してください。
+ ワークフロー定義ファイルの YAML プロパティで正しい大文字化が使用されていることを確認します。大文字と小文字の区別のルールの詳細については、「[構文ガイドラインと規則](workflow-reference.md#workflow.terms.syntax.conv)」を参照してください。各プロパティの正しい大文字と小文字の区別を確認するには、「[ワークフロー YAML 定義](workflow-reference.md)」を参照するか、アクションのドキュメント (「[ワークフローへのアクションの追加](workflows-add-action.md)」からリンクされている) を参照してください。
+ `SchemaVersion` プロパティが存在し、ワークフロー定義ファイルの正しいバージョンに設定されていることを確認します。詳細については、「[SchemaVersion](workflow-reference.md#workflow.schemaversion)」を参照してください。
+ ワークフロー定義ファイルの `Triggers` セクションに、すべての必須のプロパティが含まれていることを確認します。必須のプロパティを確認するには、[ビジュアルエディタ](workflow.md#workflow.editors)でトリガーを選択し、情報が不足しているフィールドを探すか、「[Triggers](workflow-reference.md#triggers-reference)」でトリガーリファレンスドキュメントを参照してください。
+ ワークフロー定義ファイルの `DependsOn` プロパティが正しく設定されており、循環的な依存関係が導入されていないことを確認します。詳細については、「[アクションの順序付け](workflows-depends-on.md)」を参照してください。
+ ワークフロー定義ファイルの `Actions` セクションに少なくとも 1 つのアクションが含まれていることを確認します。詳細については、「[アクション](workflow-reference.md#actions-reference)」を参照してください。
+ 各アクションにすべての必須のプロパティが含まれていることを確認します。必須のプロパティを確認するには、[ビジュアルエディタ](workflow.md#workflow.editors)でアクションを選択し、情報が不足しているフィールドを探すか、アクションのドキュメント (「[ワークフローへのアクションの追加](workflows-add-action.md)」からリンクされている) を参照してください。
+ すべての入力アーティファクトに、対応する出力アーティファクトがあることを確認します。詳細については、「[出力アーティファクトの定義](workflows-working-artifacts-output.md)」を参照してください。
+ 1 つのアクションに定義された変数をエクスポートして、他のアクションで使用できるようにします。詳細については、「[他のアクションで使用できるように変数をエクスポートする](workflows-working-with-variables-export-input.md)」を参照してください。

## 「認証情報が見つかりません」および「ExpiredToken」というエラーを解決するにはどうすればよいですか?
<a name="troubleshooting-workflows-auth-errors-eks"></a>

**問題:** 「[チュートリアル: Amazon EKS にアプリケーションをデプロイする](deploy-tut-eks.md)」に取り組んでいる際に、開発マシンのターミナルウィンドウに次のエラーメッセージのいずれかまたは両方が表示されます。

`Unable to locate credentials. You can configure credentials by running "aws configure".`

`ExpiredToken: The security token included in the request is expired` 

**解決方法:**

これらのエラーは、 AWS サービスへのアクセスに使用している認証情報の有効期限が切れていることを示します。この場合、`aws configure` コマンドは実行しないでください。代わりに、次の手順を使用して AWS アクセスキーとセッショントークンを更新します。

**AWS アクセスキーとセッショントークンを更新するには**

1. Amazon EKS チュートリアル全体 () を使用しているユーザーの AWS アクセスポータル URL、ユーザー名、パスワードがあることを確認します`codecatalyst-eks-user`。これらの項目は、チュートリアルの「[ステップ 1: 開発マシンをセットアップする](deploy-tut-eks.md#deploy-tut-eks-dev-env-create)」を完了したときに設定しているはずです。
**注記**  
この情報がない場合は、IAM アイデンティティセンターの `codecatalyst-eks-user` 詳細ページに移動し、**[パスワードをリセット]**、**[ワンタイムパスワードを生成 [...]]** を選択して、もう一度 **[パスワードをリセット]** を選択すると、画面に情報が表示されます。

1. 次のいずれかを行います。
   +  AWS アクセスポータル URL をブラウザのアドレスバーに貼り付けます。

     または
   + アクセス AWS ポータルページが既にロードされている場合は更新します。

1. まだサインインしていない場合は、`codecatalyst-eks-user` のユーザー名とパスワードでサインインします。

1. **[AWS アカウント]** を選択し、`codecatalyst-eks-user` ユーザーと許可セットを割り当てた AWS アカウント の名前を選択します。

1. 許可セット名 (`codecatalyst-eks-permission-set`) の横にある **[コマンドラインまたはプログラムからのアクセス]** を選択します。

1. ページの中央にあるコマンドをコピーします。次のような内容です。

   ```
   export AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" 
   export AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" 
   export AWS_SESSION_TOKEN="session-token"
   ```

   ...ここでは *[session-token]* は長いランダムな文字列です。

1. コマンドを開発マシンのターミナルプロンプトに貼り付けて、Enter キーを押します。

   新しいキーとセッショントークンがロードされます。

   これで認証情報が更新されました。これで AWS CLI、、`eksctl`、および `kubectl` コマンドが機能します。

## 「サーバーに接続できません」というエラーを解決するにはどうすればよいですか?
<a name="troubleshooting-workflows-unable-connect-eks"></a>

**問題**: 「[チュートリアル: Amazon EKS にアプリケーションをデプロイする](deploy-tut-eks.md)」で説明されているチュートリアルに取り組んでいる際に、開発マシンのターミナルウィンドウに次のようなエラーメッセージが表示されます。

`Unable to connect to the server: dial tcp: lookup long-string.gr7.us-west-2.eks.amazonaws.com on 1.2.3.4:5: no such host`

**解決方法:**

このエラーは通常、Amazon EKS クラスターに接続するために `kubectl` ユーティリティで使用している認証情報の有効期限が切れていることを示します。問題を解決するには、ターミナルプロンプトで次のコマンドを入力して認証情報を更新します。

```
aws eks update-kubeconfig --name codecatalyst-eks-cluster --region us-west-2
```

コードの説明は以下のとおりです。
+ *codecatalyst-eks-cluster* は Amazon EKS クラスターの名前に置き換えられます。
+ *us-west-2* は、クラスターがデプロイされている AWS リージョンに置き換えられます。

## ビジュアルエディタに CodeDeploy フィールドがないのはなぜですか?
<a name="troubleshooting-workflows-codedeploy"></a>

**問題**: 「[Amazon ECS へのデプロイ](deploy-action-ecs.md)」アクションを使用しているのに、ワークフローのビジュアルエディタに **CodeDeploy AppSpec** などの CodeDeploy フィールドが表示されていません。この問題は、**[サービス]** フィールドで指定した Amazon ECS サービスがブルー/グリーンデプロイを実行するように設定されていないことが原因で発生する場合があります。

**解決方法:** 
+ 「**Amazon ECS へのデプロイ**」アクションの **[設定]** タブで、別の Amazon ECS サービスを選択します。詳細については、「[ワークフローを使用した Amazon ECS へのデプロイ](deploy-action-ecs.md)」を参照してください。
+ 選択した Amazon ECS サービスを、ブルー/グリーンデプロイを実行するように設定します。詳細については、「Amazon Elastic Container Service 開発者ガイド」の「[CodeDeploy を使用したブルー/グリーンデプロイ](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-type-bluegreen.html)」参照してください。

## IAM 機能エラーを解決するにはどうすればよいですか?
<a name="troubleshooting-workflows-capabilities"></a>

**問題**: [CloudFormation スタックのデプロイ](deploy-action-cfn.md)アクションを使用していて、**スタックのデプロイ CloudFormation **アクションのログ`##[error] requires capabilities: [capability-name]`に が表示されます。

**解決方法:** この機能をワークフロー定義ファイルに追加するには、次の手順を実行します。IAM 機能の詳細については、[「IAM ユーザーガイド」の CloudFormation 「 テンプレートでの IAM リソースの承認](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities)」を参照してください。 **

------
#### [ Visual ]

**ビジュアルエディタを使用して IAM 機能を追加するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[ビジュアル]** を選択します。

1. ワークフロー図で、「** CloudFormation スタックのデプロイ**」アクションを選択します。

1. **[設定]** タブを選択します。

1. 下部で、**[詳細 - オプション]** を選択します。

1. **[機能]** ドロップダウンリストで、エラーメッセージに記載されている機能の横にあるチェックボックスをオンにします。機能がリストに表示されない場合は、YAML エディタを使用して追加します。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

1. 新しいワークフローの実行が自動的に開始されない場合は、ワークフローを手動で実行し、変更によってエラーが解決したかどうかを確認します。ワークフローの手動での実行の詳細については、「[手動でのワークフロー実行の開始](workflows-manually-start.md)」を参照してください。

------
#### [ YAML ]

**YAML エディタを使用して IAM 機能を追加するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. プロジェクトを選択します。

1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

1. **[編集]** を選択します。

1. **[YAML]** を選択します。

1. ** CloudFormation スタックをデプロイ**アクションで、次のような`capabilities`プロパティを追加します。

   ```
   DeployCloudFormationStack:
     Configuration:
       capabilities: capability-name
   ```

   *capability-name* を、エラーメッセージに表示される IAM 機能の名前に置き換えます。複数の機能を一覧表示するには、カンマを使用します。スペースは使用しません。詳細については、「[CloudFormation 「スタックをデプロイ」アクション YAML](deploy-action-ref-cfn.md)」で `capabilities` プロパティの説明を参照してください。

1. (省略可) **[検証]** を選択して、ワークフローの YAML コードをコミットする前に検証します。

1. **[コミット]** を選択し、コミットメッセージを入力し、再度 **[コミット]** を選択します。

1. 新しいワークフローの実行が自動的に開始されない場合は、ワークフローを手動で実行し、変更によってエラーが解決したかどうかを確認します。ワークフローの手動での実行の詳細については、「[手動でのワークフロー実行の開始](workflows-manually-start.md)」を参照してください。

------

## 「npm install」エラーを解決するにはどうすればよいですか?
<a name="troubleshooting-workflows-npm"></a>

**問題**: [AWS CDK のデプロイのアクション](cdk-dep-action.md)または [AWS CDK のブートストラップのアクション](cdk-boot-action.md)が `npm install` エラーで失敗します。このエラーは、 アクションではアクセスできないプライベートノードパッケージマネージャー (npm) レジストリに AWS CDK アプリの依存関係を保存していることが原因で発生する可能性があります。

**解決方法**: 次の手順に従って、追加のレジストリと認証情報で AWS CDK アプリケーションの `cdk.json` ファイルを更新します。

**[開始する前に]**

1. 認証情報のシークレットを作成します。クリアテキストに相当するものを提供する代わりに、`cdk.json` ファイルでこれらのシークレットを参照します。シークレットを作成するには:

   1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

   1. プロジェクトを選択します。

   1. ナビゲーションペインで **[CI/CD]**、**[シークレット]** の順に選択します。

   1. 次のプロパティで 2 個のシークレットを作成します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codecatalyst/latest/userguide/troubleshooting-workflows.html)

      シークレットの詳細については、「[シークレットを使用したデータのマスキング](workflows-secrets.md)」を参照してください。

1. シークレットを環境変数として AWS CDK アクションに追加します。このアクションは実行時に変数を実際の値に置き換えます。シークレットを追加するには:

   1. ナビゲーションペインで **[CI/CD]**、**[ワークフロー]** の順に選択します。

   1. ワークフローの名前を選択します。ワークフローが定義されているソースリポジトリまたはブランチ名でフィルタリングすることも、ワークフロー名またはステータスでフィルタリングすることもできます。

   1. **[編集]** を選択します。

   1. **[ビジュアル]** を選択します。

   1. ワークフロー図で、 AWS CDK アクションを選択します。

   1. **[入力]** タブを選択します。

   1. 次のプロパティを持つ 2 つの変数を追加します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/codecatalyst/latest/userguide/troubleshooting-workflows.html)

      これで、シークレットへの参照を含む 2 つの変数が追加されました。

   ワークフロー定義ファイルの YAML コードは、次のようになっているはずです。
**注記**  
次のコードサンプルは「**AWS CDK のブートストラップ**」アクションからのものです。「**AWS CDK のデプロイ**」アクションは似たようなものになります。

   ```
   Name: CDK_Bootstrap_Action
   SchemaVersion: 1.0
   Actions:
     CDKBootstrapAction:
       Identifier: aws/cdk-bootstrap@v2
       Inputs:
         Variables:
           - Name: NPMUSER
             Value: ${Secrets.npmUsername}
           - Name: NPMTOKEN
             Value: ${Secrets.npmAuthToken}
         Sources:
           - WorkflowSource
       Environment:
         Name: Dev2
         Connections:
           - Name: account-connection
             Role: codecatalystAdmin
       Configuration:
         Parameters:
           Region: "us-east-2"
   ```

   これで、`cdk.json` ファイル内の `NPMUSER` 変数と `NPMTOKEN` 変数を使用する準備が整いました。次の手順に進みます。

**cdk.json ファイルを更新するには**

1. を AWS CDK プロジェクトのルートディレクトリに変更し、 `cdk.json` ファイルを開きます。

1. `"app":` プロパティを検索し、*赤色の斜体*で示されているコードを含めるように変更します。
**注記**  
次のサンプルコードは TypeScript プロジェクトからのものです。JavaScript プロジェクトを使用している場合、コードは似ていますが、同一ではありません。

   ```
   {
     "app": "npm set registry=https://your-registry/folder/CDK-package/ --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:always-auth=true --userconfig .npmrc && npm set //your-registry/folder/CDK-package/:_authToken=\"${NPMUSER}\":\"${NPMTOKEN}\" && npm install  && npx ts-node --prefer-ts-exts bin/hello-cdk.ts|js",
     "watch": {
       "include": [
         "**"
       ],
       "exclude": [
         "README.md",
         "cdk*.json",
         "**/*.d.ts",
         "**/*.js",
         "tsconfig.json",
         "package*.json",
   ...
   ```

1. *赤色の斜体*で強調表示されているコードについて、次のように置き換えます。
   + *your-registry/folder/CDK-package/* と、プライベートレジストリ内の AWS CDK プロジェクトの依存関係へのパス。
   + *hello-cdk.ts\$1.js* をエントリポイントファイルの名前に置き換える。使用している言語に応じて `.ts` (TypeScript) ファイルまたは `.js` (JavaScript) ファイルになります。
**注記**  
このアクションにより、*NPMUSER* 変数と *NPMTOKEN* 変数が、**[シークレット]** で指定した npm ユーザー名とアクセストークンに置き換えられます。

1. `cdk.json` ファイルを保存します。

1. アクションを手動で再実行して、変更によってエラーが解決したかどうかを確認します。手動でのアクションの実行の詳細については、「[手動でのワークフロー実行の開始](workflows-manually-start.md)」を参照してください。

## 複数のワークフローに同じ名前が付いているのはなぜですか?
<a name="troubleshooting-workflows-name"></a>



ワークフローは、リポジトリごとにブランチ単位で保存されます。2 つの異なるワークフローは、異なるブランチに存在する場合、同じ名前になることがあります。[ワークフロー] ページで、ブランチ名を見ると、同じ名前のワークフローを区別できます。詳細については、「[Amazon CodeCatalyst でブランチを使用してソースコードを整理する](source-branches.md)」を参照してください。

![\[ワークフローブランチ\]](http://docs.aws.amazon.com/ja_jp/codecatalyst/latest/userguide/images/flows/workflow-branch.png)


## ワークフロー定義ファイルを別のフォルダに保存できますか?
<a name="troubleshooting-workflows-folder"></a>

できません。すべてのワークフロー定義ファイルは `.codecatalyst/workflows` フォルダかそのフォルダのサブフォルダに保存する必要があります。複数の論理プロジェクトを含むモノリポジトリを使用している場合は、すべてのワークフロー定義ファイルを `.codecatalyst/workflows` フォルダかそのサブフォルダの 1 つに配置してから、トリガー内の **[変更済みファイル]** フィールド (ビジュアルエディタ) または `FilesChanged` プロパティ (YAML エディタ) を使用して、指定したプロジェクトパスでワークフローを自動的にトリガーします。詳細については、「[ワークフローへのトリガーの追加](workflows-add-trigger-add.md)」および「[例: プッシュ、ブランチ、ファイルを含むトリガー](workflows-add-trigger-examples.md#workflows-add-trigger-examples-push-multi)」を参照してください。

## ワークフローにアクションを順番に追加するにはどうすればよいですか?
<a name="troubleshooting-workflows-visual"></a>

デフォルトでは、ワークフローにアクションを追加すると、そのアクションは依存関係を持たず、他のアクションと並行して実行されます。

アクションを順番に配列する場合は、`DependsOn` フィールドを設定すると別のアクションへの依存関係を設定できます。また、他のアクションの出力であるアーティファクトまたは変数を消費するようにアクションを設定することもできます。詳細については、「[アクションの順序付け](workflows-depends-on.md)」を参照してください。

## ワークフローは正常に検証されるのに、ランタイム時に失敗するのはなぜですか?
<a name="troubleshooting-workflows-validation"></a>

`Validate` ボタンを使用してワークフローを検証したのにワークフローが失敗する場合は、検証ツールの制限が原因の可能性があります。

ワークフロー設定のシークレット、環境、フリートなどの CodeCatalyst リソースを参照する際のエラーは、コミット中に登録されません。有効でない参照が使用されている場合、ワークフローの実行時にのみ、このエラーが識別されます。同様に、アクション属性に必須フィールドがない場合やタイプミスがあるなど、アクション設定にエラーがある場合、そうしたエラーはワークフローの実行時にのみ識別されます。詳細については、「[ワークフローの作成](workflows-create-workflow.md)」を参照してください。

## 自動検出でアクションのレポートが検出されなません
<a name="troubleshooting-reports-auto-discovery"></a>

**問題:** テストを実行するアクションに対して自動検出を設定しましたが、CodeCatalyst でレポートが検出されません。

**解決方法:** いくつかの問題が原因の可能性があります。次のソリューションのうち 1 つまたは複数を試してください。
+ テストの実行に使用するツールが、CodeCatalyst が理解できる形式のいずれかで出力を生成することを確認します。例えば、`pytest` を使用して CodeCatalyst がテストおよびコードカバレッジレポートを検出できるようにする場合は、次の引数を含めます。

  ```
  --junitxml=test_results.xml --cov-report xml:test_coverage.xml
  ```

  詳細については、「[品質レポートのタイプ](test-workflow-actions.md#test-reporting)」を参照してください。
+ 出力のファイル拡張子が選択した形式と一致していることを確認します。例えば、`JUnitXML` 形式で結果を生成するように `pytest` を構成する場合は、ファイル拡張子が `.xml` であることを確認します。詳細については、「[品質レポートのタイプ](test-workflow-actions.md#test-reporting)」を参照してください。
+ 特定のフォルダを意図的に除外していない限り、ファイル システム全体 (`**/*`) を含むように `IncludePaths` が設定されていることを確認します。同様に、レポートの配置場所に想定しているディレクトリを `ExcludePaths` で除外しないようにします。
+ 特定の出力ファイルを使用するようにレポートを手動で設定した場合、そのレポートは自動検出から除外されます。詳細については、「[品質レポートの YAML 例](test-config-action.md#test.success-criteria-example)」を参照してください。
+ 出力が生成される前にアクションが失敗したことが原因で、自動検出でレポートが見つからない場合があります。例えば、ユニットテストが実行される前にビルドが失敗した可能性があります。

## 成功基準を設定した後、自動検出レポートでアクションが失敗します
<a name="troubleshooting-success-auto-discovery"></a>

**問題:** 自動検出を有効にして成功基準を設定すると、一部のレポートが成功基準を満たさず、結果としてアクションが失敗します。

**解決方法:** 解決するには、次の解決策を 1 つ以上試してください。
+ `IncludePaths` または `ExcludePaths` を変更して、関心のないレポートを除外します。
+ 成功基準を更新して、すべてのレポートが合格できるようにします。例えば、1 つのレポートが 50% のラインカバレッジで、もう 1 つのレポートが 70% のラインカバレッジで検出された、最小ラインカバレッジを 50% に調整します。詳細については、[成功基準](test-best-practices.md#test.best-success-criteria)を参照してください。
+ 失敗したレポートを手動で設定されたレポートに変換します。こうすることで、その特定のレポートに対して異なる成功基準を設定できます。詳細については、「[レポートの成功基準の設定](test-config-action.md#test.success-criteria)」を参照してください。

## 自動検出で不要なレポートが生成されます
<a name="troubleshooting-unwanted-auto-discovery"></a>

**問題:** 自動検出を有効にすると、不要なレポートが生成されます。例えば、CodeCatalyst は、`node_modules` に保存されているアプリケーションの依存関係に含まれるファイルのコードカバレッジレポートを生成します。

**解決方法:** `ExcludePaths` 設定を調整すると不要なファイルを除外できます。例えば、`node_modules` を除外するには、`node_modules/**/*` を追加します。詳細については、「[パスの包含/除外](test-best-practices.md#test.best-include-exclude)」を参照してください。

## 自動検出で、1 つのテストフレームワークに多数の小さなレポートが生成されます
<a name="troubleshooting-reports-combined"></a>

**問題:** 特定のテストフレームワークとコードカバレッジレポートフレームワークを使用すると、自動検出で多数のレポートが生成されることに気付きました。例えば、[Maven Surefire プラグイン](https://maven.apache.org/surefire/maven-surefire-plugin/)を使用する場合、自動検出はテストクラスごとに異なるレポートを生成します。

**解決方法:** フレームワークは、出力を 1 つのファイルに集約できる場合があります。例えば、Maven Surefire プラグインを使用している場合、`npx junit-merge` を使用してファイルを手動で集約できます。式全体は次のようになります。

```
mvn test; cd test-package-path/surefire-reports && npx junit-merge -d ./ && rm *Test.xml
```

## CI/CD に一覧表示されるワークフローがソースリポジトリのワークフローと一致しません
<a name="troubleshooting-workflow-source"></a>

**問題:** **CI/CD** の [ワークフロー] ページに表示されるワークフローが、[ソースリポジトリ](source.md)の `~/.codecatalyst/workflows/` フォルダにある**ワークフロー**と一致しません。次の不一致が確認される場合があります。
+ **[ワークフロー]** ページにワークフローは表示されるが、対応するワークフロー定義ファイルがソースリポジトリに存在していない。
+ ワークフロー定義ファイルはソースリポジトリに存在しているが、対応するワークフローが **[ワークフロー]** ページに表示されない。
+ ワークフローはソースリポジトリと **[ワークフロー]** ページの両方にあるが、2 つは異なっている。

この問題は、**[ワークフロー]** ページを更新する時間がなかった場合、またはワークフローのクォータを超えた場合に発生する可能性があります。

**解決方法:**
+ 待ちます。通常、ソースへのコミット後、**[ワークフロー]** ページに変更が表示されるまで 2～3 秒待つ必要があります。
+ ワークフロークォータを超えた場合は、次のいずれかを実行します。
**注記**  
ワークフロークォータを超えたかどうかを判断するには、「[CodeCatalyst のワークフローのクォータ](workflows-quotas.md)」を確認し、ソースリポジトリまたは **[ワークフロー]** ページのワークフローと文書化されたクォータを照合します。クォータを超えたことを示すエラーメッセージは表示されないため、自分で調査する必要があります。
  + **「スペースあたりのワークフローの最大数」**クォータを超えた場合は、一部のワークフローを削除してから、ワークフロー定義ファイルに対してテストコミットを実行します。テストコミットの例としては、ファイルにスペースを追加することが挙げられます。
  + **「最大ワークフロー定義ファイルサイズ**」クォータを超えた場合は、ワークフロー定義ファイルを変更して長さを短くします。
  + **「1 つのソースイベントで処理されるワークフローファイルの最大数」**クォータを超えた場合は、テストコミットをいくつか実行します。各コミットのワークフローの最大数よりも少なくなるように変更します。

## ワークフローを作成したり更新したりできません
<a name="troubleshooting-workflows-branchrules"></a>

**問題:** ワークフローの作成や更新をしたいのに、変更をコミットしようとするとエラーが表示されます。

**解決方法:** プロジェクトまたはスペース内のロールによっては、プロジェクト内のソースリポジトリにコードをプッシュするアクセス許可がない場合があります。ワークフローの YAML ファイルはリポジトリに保存されます。詳細については、「[ワークフロー定義ファイル](workflows-concepts.md#workflows-concepts-workflows-def)」を参照してください。**スペース管理者**ロール、**プロジェクト管理者**ロール、**コントリビューター**ロールはすべて、プロジェクト内のリポジトリにコードをコミットおよびプッシュするアクセス許可を持っています。

**コントリビューター**ロールを持っているのに、特定のブランチでワークフロー YAML を作成したり、その変更をコミットしたりできない場合、そのロールを持つユーザーがその特定のブランチにコードをプッシュできないようにブランチルールが設定されている可能性があります。別のブランチでワークフローを作成するか、変更を別のブランチにコミットしてみてください。詳細については、「[ブランチルールを使用してブランチで許可されたアクションを管理する](source-branches-branch-rules.md)」を参照してください。