Integrating Replicated GitHub Actions
This topic describes how to integrate Replicated's custom GitHub actions into continuous integration and continuous delivery (CI/CD) workflows that use the GitHub Actions platform.
Overview
Replicated maintains a set of custom GitHub actions that are designed to replace repetitive tasks related to distributing your application with Replicated and related to using the Compatibility Matrix, such as:
- Creating and removing customers, channels, and clusters
- Promoting releases
- Creating a matrix of clusters for testing based on the Kubernetes distributions and versions where your customers are running application instances
- Reporting the success or failure of tests
If you use GitHub Actions as your CI/CD platform, you can include these custom actions in your workflows rather than using Replicated CLI commands. Integrating the Replicated GitHub actions into your CI/CD pipeline helps you quickly build workflows with the required inputs and outputs, without needing to manually create the required CLI commands for each step.
To view all the available GitHub actions that Replicated maintains, see the replicatedhq/replicated-actions repository in GitHub.
GitHub Actions Workflow Examples
The replicatedhq/replicated-actions repository in GitHub contains example workflows that use the Replicated GitHub actions. You can use these workflows as a template for your own GitHub Actions CI/CD workflows:
- For a simplified development workflow, see development-helm-prepare-cluster.yaml.
- For a customizable development workflow for applications installed with the Helm CLI, see development-helm.yaml.
- For a customizable development workflow for applications installed with KOTS, see development-kots.yaml.
- For a release workflow, see release.yaml.
Integrate GitHub Actions
The following table lists GitHub actions that are maintained by Replicated that you can integrate into your CI/CI workflows. The table also describes when to use the action in a workflow and indicates the related Replicated CLI command where applicable.
For an up-to-date list of the avilable custom GitHub actions, see the replicatedhq/replicated-actions repository in GitHub.
GitHub Action | When to Use | Related Replicated CLI Commands |
---|---|---|
archive-channel | In release workflows, a temporary channel is created to promote a release for testing. This action archives the temporary channel after tests complete. See Archive the temporary channel and customer in Recommended CI/CD Workflows. | channel delete |
archive-customer | In release workflows, a temporary customer is created so that a release can be installed for testing. This action archives the temporary customer after tests complete. See Archive the temporary channel and customer in Recommended CI/CD Workflows. | N/A |
create-cluster | In release workflows, use this action to create one or more clusters for testing. See Create cluster matrix, deploy, and test in Recommended CI/CD Workflows. | cluster create |
create-release | In release workflows, use this action to create a release to be installed and tested, and optionally to be promoted to a shared channel after tests complete. See Create a release and promote to a temporary channel in Recommended CI/CD Workflows. | release create |
get-customer-instances | In release workflows, use this action to create a matrix of clusters for running tests based on the Kubernetes distributions and versions of active instances of your application running in customer environments. See Create cluster matrix, deploy, and test in Recommended CI/CD Workflows. | N/A |
helm-install | In development or release workflows, use this action to install a release using the Helm CLI in one or more clusters for testing. See Create cluster matrix, deploy, and test in Recommended CI/CD Workflows. | N/A |
kots-install | In development or release workflows, use this action to install a release with Replicated KOTS in one or more clusters for testing. See Create cluster matrix, deploy, and test in Recommended CI/CD Workflows. | N/A |
prepare-cluster | In development workflows, use this action to create a cluster, create a temporary customer of type See Prepare clusters, deploy, and test in Recommended CI/CD Workflows. | cluster prepare |
promote-release | In release workflows, use this action to promote a release to an internal or customer-facing channel (such as Unstable, Beta, or Stable) after tests pass. See Promote to a shared channel in Recommended CI/CD Workflows. | release promote |
remove-cluster | In development or release workflows, use this action to remove a cluster after running tests if no See Prepare clusters, deploy, and test and Create cluster matrix, deploy, and test in Recommended CI/CD Workflows. | cluster rm |
report-compatibility-result | In development or release workflows, use this action to report the success or failure of tests that ran in clusters provisioned by the Compatibility Matrix. | release compatibility |
upgrade-cluster | In release workflows, use this action to test your application's compatibility with Kubernetes API resource version migrations after upgrading. | cluster upgrade |