Configuring actions to depend on other actions - Amazon CodeCatalyst

Configuring actions to depend on other actions

By default, when you add actions to a workflow, they are added side by side in the visual editor. This means that the actions will run in parallel when you start a workflow run. If you want actions to run in sequential order (and appear vertically in the visual editor), you must set up dependencies between them. For example, you might set up a Test action to depend on the Build action so that the test action runs after the build action.

You can set up dependencies between actions and action groups. You can also configure one-to-many dependencies so that one action depends on several others in order to start. Consult the Guidelines for setting up dependencies to ensure your dependency setup conforms with the workflow's YAML syntax.

Setting up dependencies between actions

Use the following instructions to set up dependencies between actions in a workflow.

Visual
To set up dependencies using the visual editor
  1. Open the CodeCatalyst console at https://codecatalyst.aws/.

  2. Choose your project.

  3. In the navigation pane, choose CI/CD, and then choose Workflows.

  4. Choose the name of your workflow. You can filter by the source repository or branch name where the workflow is defined, or filter by workflow name.

  5. Choose Edit.

  6. Choose Visual.

  7. In the workflow diagram, choose the action that will depend on another action.

  8. Choose the Inputs tab.

  9. In Depends on - optional, do the following:

    Specify an action, action group, or gate that must run successfully in order for this action to run.

    For more information about the 'depends on' functionality, see Configuring actions to depend on other actions.

  10. (Optional) Choose Validate to validate the workflow's YAML code before committing.

  11. Choose Commit, enter a commit message, and choose Commit again.

YAML
To set up dependencies using the YAML editor
  1. Open the CodeCatalyst console at https://codecatalyst.aws/.

  2. Choose your project.

  3. In the navigation pane, choose CI/CD, and then choose Workflows.

  4. Choose the name of your workflow. You can filter by the source repository or branch name where the workflow is defined, or filter by workflow name.

  5. Choose Edit.

  6. Choose YAML.

  7. In an action that will depend on another, add code similar to the following:

    action-name: DependsOn: - action-1

    For more examples, see Examples of how to configure dependencies between actions. For general guidelines, see Guidelines for setting up dependencies. For more information, see the description of the DependsOn property in the Workflow YAML definition for your action.

  8. (Optional) Choose Validate to validate the workflow's YAML code before committing.

  9. Choose Commit, enter a commit message, and choose Commit again.

Guidelines for setting up dependencies

When configuring dependencies, follow these guidelines:

  • If an action is inside a group, that action can only depend on other actions within the same group.

  • Actions and action groups can depend on other actions and action groups at the same level in the YAML hierarchy, but not at a different level.

Examples of how to configure dependencies between actions

The following examples show how to configure dependencies between actions and groups in the workflow definition file.

Example: Configuring a simple dependency

The following example shows how to configure a Test action to depend on the Build action using the DependsOn property.

Actions: Build: Identifier: aws/build@v1 Configuration: ... Test: DependsOn: - Build Identifier: aws/managed-test@v1 Configuration: ...

Example: Configuring an action group to depend on an action

The following example shows how to configure a DeployGroup action group to depend on the FirstAction action. Notice that action and action group are at the same level.

Actions: FirstAction: #An action outside an action group Identifier: aws/github-actions-runner@v1 Configuration: ... DeployGroup: #An action group containing two actions DependsOn: - FirstAction Actions: DeployAction1: ... DeployAction2: ...

Example: Configuring an action group to depend on another action group

The following example shows how to configure a DeployGroup action group to depend on the BuildAndTestGroup action group. Notice that the action groups are at the same level.

Actions: BuildAndTestGroup: # Action group 1 Actions: BuildAction: ... TestAction: ... DeployGroup: #Action group 2 DependsOn: - BuildAndTestGroup Actions: DeployAction1: ... DeployAction2: ...

Example: Configuring an action group to depend on multiple actions

The following example shows how to configure a DeployGroup action group to depend on the FirstAction action, the SecondAction action, as well as the BuildAndTestGroup action group. Notice that DeployGroup is at the same level as FirstAction, SecondAction, and BuildAndTestGroup.

Actions: FirstAction: #An action outside an action group ... SecondAction: #Another action ... BuildAndTestGroup: #Action group 1 Actions: Build: ... Test: ... DeployGroup: #Action group 2 DependsOn: - FirstAction - SecondAction - BuildAndTestGroup Actions: DeployAction1: ... DeployAction2: ...