Integrating with GitHub Actions
A GitHub Action is a lot like a CodeCatalyst action, except that it was developed for
use with GitHub workflows. For details about GitHub Actions, see the GitHub Actions
You can use GitHub Actions alongside native CodeCatalyst actions in a CodeCatalyst workflow.
There are two ways to add a GitHub Action to a CodeCatalyst workflow:
-
You can select the GitHub Action from a curated list in the CodeCatalyst console. Several popular GitHub Actions are available. For more information, see Adding a curated GitHub Action.
-
If the GitHub Action that you want to use is not available in the CodeCatalyst console, you can add it using a GitHub Actions action.
A GitHub Actions action is a CodeCatalyst action that wraps a GitHub Action and makes it compatible with CodeCatalyst workflows.
Here is an example of a GitHub Actions action wrapping the Super-Linter
GitHub Action: Actions: GitHubAction: Identifier: aws/github-actions-runner@v1 Configuration: Steps: - name: Lint Code Base uses: github/super-linter@v4 env: VALIDATE_ALL_CODEBASE: "true" DEFAULT_BRANCH: main
In the previous code, the CodeCatalyst GitHub Actions action (identified by
aws/github-actions-runner@v1
) wraps the Super-Linter action (identified bygithub/super-linter@v4
), making it work in a CodeCatalyst workflow.For more information, see Adding the 'GitHub Actions' action.
All GitHub Actions—both curated and not—must be wrapped inside a
GitHub Actions action (aws/github-actions-runner@v1
), as
shown in the previous example. The wrapper is required for the action to function properly.
Topics
- How are GitHub Actions different from CodeCatalyst actions?
- Can GitHub Actions interact with other CodeCatalyst actions in the workflow?
- Which GitHub Actions can I use?
- Limitations of GitHub Actions in CodeCatalyst
- How do I add a GitHub Action (high-level steps)?
- Does the GitHub Action run in GitHub?
- Can I use GitHub workflows too?
- Runtime image used by the 'GitHub Actions' action
- Tutorial: Lint code using a GitHub Action
- Adding the 'GitHub Actions' action
- Adding a curated GitHub Action
- Exporting GitHub output parameters
- Referencing GitHub output parameters
- 'GitHub Actions' action YAML
How are GitHub Actions different from CodeCatalyst actions?
GitHub Actions that are used inside a CodeCatalyst workflow do not have the same level of access and integration with AWS and CodeCatalyst features (such as environments and issues) that CodeCatalyst actions do.
Can GitHub Actions interact with other CodeCatalyst actions in the workflow?
Yes. For example, GitHub Actions can use variables produced by other CodeCatalyst actions as input, and can also share output parameters and artifacts with CodeCatalyst actions. For more information, see Exporting GitHub output parameters and Referencing GitHub output parameters.
Which GitHub Actions can I use?
You can use any GitHub Action available through the CodeCatalyst console, and any GitHub Action
available in the GitHub
Marketplace
Limitations of GitHub Actions in CodeCatalyst
-
GitHub Actions cannot be used with the CodeCatalyst Lambda compute type.
-
GitHub Actions run on the November 2022 runtime environment Docker image, which includes older tooling. For more information about the image and tooling, see Specifying runtime environment images.
-
GitHub Actions that internally rely on the
github
contextor that reference GitHub-specific resources won't work in CodeCatalyst. For example, the following actions won't work in CodeCatalyst: -
Actions that attempt to add, change, or update GitHub resources. Examples include actions that update pull requests, or create issues in GitHub.
-
Almost all actions listed in https://github.com/actions
.
-
-
GitHub Actions that are Docker container actions
will work, but they must be run by the default Docker user (root). Do not run the action as user 1001. (At the time of writing, user 1001 works in GitHub, but not in CodeCatalyst.) For more information, see the USER topic in Dockerfile support for GitHub Actions .
For a list of GitHub Actions available through the CodeCatalyst console, see Adding a curated GitHub Action.
How do I add a GitHub Action (high-level steps)?
The high-level steps to add a GitHub Action to a CodeCatalyst workflow are as follows:
-
In your CodeCatalyst project, you create a workflow. The workflow is where you define how to build, test, and deploy your application. For more information, see Getting started with workflows.
-
In the workflow, you add a curated GitHub Action or you add the GitHub Actions action.
-
You do one of the following:
-
If you chose to add a curated action, configure it. For more information, see Adding a curated GitHub Action.
-
If you chose to add a non-curated action, within the GitHub Actions action, you paste the GitHub Action’s YAML code. You can find this code on the details page of your chosen GitHub Action in the GitHub Marketplace
. You will likely need to modify the code slightly to have it work in CodeCatalyst. For more information, see Adding the 'GitHub Actions' action.
-
-
(Optional) Within the workflow, you add other actions like the build and test actions. For more information, see Build, test, and deploy with workflows.
-
You start the workflow either manually or automatically through a trigger. The workflow runs the GitHub Action and any other actions in the workflow. For more information, see Starting a workflow run manually.
For detailed steps, see:
Does the GitHub Action run in GitHub?
No. The GitHub Action runs in CodeCatalyst, using CodeCatalyst’s runtime environment image.
Can I use GitHub workflows too?
No.
Runtime image used by the 'GitHub Actions' action
The CodeCatalyst GitHub Actions action runs on a November 2022 image. For more information, see Active images.