GitHub Actions
In this library you'll find all the GitHub Actions we've implemented to solve common CI/CD challenges.
atmos-affected-stacks
A GitHub Action to get a list of affected atmos stacks for a pull request
atmos-affected-trigger-spacelift
GitHub Action for Triggering Affected Spacelift Stacks
atmos-component-updater
This is GitHub Action that can be used as a workflow for automatic updates via Pull Requests in your infrastructure repository according to versions in components sources.
atmos-get-setting
GitHub Action to retrieve a setting from atmos configuration.
atmos-terraform-apply
This Github Action is used to run Terraform apply for a single, Atmos-supported component with a saved planfile in S3 and DynamoDB.
atmos-terraform-drift-detection
This Github Action is used to detect drift
atmos-terraform-drift-remediation
This Github Action is used to remediate drift
atmos-terraform-plan
This Github Action is used to run Terraform plan for a single, Atmos-supported component and save the given planfile to S3 and DynamoDB.
atmos-terraform-select-components
GitHub Action that outputs list of Atmos components by jq query
auto-format
Github Action Auto-Format runs several repository "hygiene" tasks for repositories:
- The
readmetarget will rebuildREADME.mdfromREADME.yaml. - The
github_formattarget adds all of Cloud Posse's standard repository housekeeping files (including GitHub Actions workflows) to the repository's.githubfolder. - The
terraform_formattarget ensures consistent formatting across all Terraform files in the repository.
auto-release
This is an opinionated composite Github Action that implements a workflow based on the popular release-drafter action to automatically draft releases with release notes that are derived from PR descriptions as they are merged into the default branch.Under default settings, auto-release will also cut a new release from the default branch after every merge into it. However, releases are not cut for merges of pull requests with a no-release label attached. In that case, the release notes are left as a draft and a release with all unreleased changes will be made the next time a pull request without the no-release label is merged into the default branch.
aws-region-reduction-map
Converts AWS region names from full names to abbreviations
datadog-notify
Create Datadog Notify Event
deploy-argocd
Deploy on Kubernetes with ArgoCD
deploy-ecspresso
Deploy on ECS with Escpresso
deploy-helmfile
Deploy on Kubernetes with HelmFile
deploy-spacelift
Opinionated way to deploy Docker image app with Spacelift
docker-build-push
Build Docker image and push it
docker-compose-test-run
Up docker compose and run tests in specific container
docker-image-exists
Check if docker image exists by pulling it
docker-promote
Promote docker image
interface-environment
Get Environments settings from private settings action provider
jq
Process a input with a jq script and output result as step output
kubernetes-environment
This repository wraps the environment information action, allowing it to be used as a replacement in support of various string functions and namespace standardization.
major-release-tagger
GitHub Action that automatically generates or updates v<major-release> tags every time a new release is published.
matrix-extended
GitHub Action that when used together with reusable workflows makes it easier to workaround the limit of 256 jobs in a matrix.
matrix-outputs-read
Workaround implementation - Read matrix jobs outputs
matrix-outputs-write
Workaround implementation - Write matrix jobs outputs
monorepo-random-controller
Monorepo random controller used for demo
preview-environment-controller
Action to manage to deploy and purge preview environments depends on PR labels
preview-labels-cleanup
Remove labels used to control deployments with github-action-preview-environment-controller
release-branch-manager
GitHub Action for Managing Release Branches
release-label-validator
This GitHub Action validates that the major label is only assigned to Pull Requests targeting the default branch, enhancing the management of significant changes.
run-ecspresso
Run ECS task with Escpresso
secret-outputs
This GitHub Action implement workaround for the problem
Combining job outputs with masking leads to empty output.
The problem was described in
GitHub Action documentation
Outputs containing secrets are redacted on the runner and not sent to GitHub Actions.
seek-deployment
Get GitHub deployment object by ref and environment name
setup-atmos
Install atmos for use in GitHub Actions
spacelift-stack-deploy
Trigger Spacelist stack synchronously
sync-docker-repos
GitHub Action to sync two docker repositories.
terraform-auto-context
This is a Github Action that will automatically update the context.tf file in the calling repo against the most recent version published by Cloud Posse. If a new version is detected, a Pull Request will be opened to update it.
If the repo version is found to be out of date, a pull request is opened to update it.
terraform-plan-storage
A GitHub Action to securely store Terraform plan files in a cloud storage (S3 or Azure Blob Storage) with metadata storage in cloud document database (DynamoDB or CosmosDB).
terratest
A GitHub Action to run Terratest tests and post the results as a build artifact.
validate-codeowners
This is a Github Action to validate the CODEOWNERS file by running a series of checks against the CODEOWNERS file to ensure that it's valid and well-linted.Ensuring your repository's CODEOWNERS file is valid can be critical to the development process if, for instance, your project uses branch protection conditions that rely on definitions in CODEOWNERS.
wait-commit-status
Wait for commit status
yaml-config-query
Define YAML document, filter it with JSON query and get result as outputs