GitHub Actions Workflow Configuration
Learn how to configure GitHub Actions workflows for Atmos Pro ordered deployments.
This section assumes you are familiar with GitHub Actions workflows and have already been using them in your
organization. If you are new to GitHub Actions, please refer to the GitHub Actions
documentation for more information.
To use Atmos Pro with GitHub Actions, you'll first need to Create Workspace and then configure the following workflows:
- 1Affected Stacks Workflow
- 2Plan Workflow
- 3Apply Workflow
- 4List Instances Workflow (Drift Detection)
Atmos Pro uses the native Atmos CLI to handle everything from detecting changes to applying infrastructure. The workflows below call Atmos commands directly, uploading results to Atmos Pro via the
--upload and --upload-status flags. Drop these into your repo to get started fast.This workflow runs on every pull request event against the main branch. It uses
atmos describe affected to determine which stacks changed and uploads the results to Atmos Pro. For merged PRs, it computes the correct base commit so that only the newly merged changes are detected.name: 👽 Atmos Pro
run-name: 👽 Atmos Pro
on:
pull_request:
types:
- opened
- synchronize
- reopened
- closed
branches:
- main
concurrency:
group: "${{ github.ref }}"
cancel-in-progress: false
permissions:
id-token: write
contents: read
checks: write
jobs:
affected:
name: Trigger Affected Stacks
runs-on:
- "ubuntu-latest"
if: |
!contains(github.event.pull_request.labels.*.name, 'no-apply') &&
(github.event.action != 'closed' || (github.event.action == 'closed' && github.event.pull_request.merged == true))
steps:
- name: Checkout
if: github.event.action == 'closed'
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Determine previous commit on base branch
id: get_parent
if: github.event.action == 'closed'
shell: bash
run: |
echo "Merge commit: $(git rev-parse HEAD)"
PARENT=$(git rev-parse HEAD~1)
echo "Parent (base) commit: $PARENT"
echo "parent_commit=$PARENT" >> "$GITHUB_OUTPUT"
- name: Install Atmos
uses: cloudposse/github-action-setup-atmos@v3
with:
install-wrapper: false
atmos-version: ${{ vars.ATMOS_VERSION }}
- name: Determine Affected Stacks
shell: bash
env:
ATMOS_PRO_WORKSPACE_ID: ${{ vars.ATMOS_PRO_WORKSPACE_ID }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ATMOS_PROFILE: github
run: |
atmos describe affected \
--process-functions=false \
--include-settings=false \
--skip=terraform.output \
--upload \
--identity=ex2/atmos \
--sha ${{ github.event.action == 'closed' && steps.get_parent.outputs.parent_commit || github.event.pull_request.base.sha }}You've seen how it works—now it's your turn. Connect Atmos Pro to your repo and start deploying like it's 2026.
Ready to get started?
Install the Atmos Pro GitHub App to get started.