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
readme
target will rebuildREADME.md
fromREADME.yaml
. - The
github_format
target adds all of Cloud Posse's standard repository housekeeping files (including GitHub Actions workflows) to the repository's.github
folder. - The
terraform_format
target 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
mega-linter
Template repository of composite GitHub Action
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