github cloudposse/atmos v1.216.0-rc.0

pre-release18 hours ago
feat(list): add matrix output format to list instances command @johncblandii (#2322) ## what
  • Add --format=matrix support to atmos list instances, producing GitHub Actions-compatible matrix JSON identical to atmos describe affected --format=matrix
  • Add --output-file flag for writing results in key=value format (for $GITHUB_OUTPUT)
  • Extract shared matrix types and output logic into pkg/matrix/ for DRY reuse across both describe affected and list instances

why

  • CI/CD pipelines need matrix output from list instances to drive parallel GitHub Actions jobs, just like describe affected already supports
  • Sharing the matrix output logic between commands avoids duplication and ensures consistent output format
  • The --output-file flag enables direct integration with GitHub Actions $GITHUB_OUTPUT without shell redirection

references

  • Output format matches atmos describe affected --format=matrix exactly:
    {"include":[{"stack":"...","component":"...","component_path":"...","component_type":"..."}]}
  • When using --output-file, writes matrix=<json> and affected_count=<N> lines

Summary by CodeRabbit

  • New Features

    • Added --format=matrix to emit GitHub Actions–compatible matrix JSON
    • Added --output-file / -o to write matrix results as key=value (for $GITHUB_OUTPUT); only supported with --format=matrix
    • Matrix entries include stack, component, component_path, and component_type
    • --format=matrix disallows --upload and triggers CI-friendly output behavior
  • Tests

    • Added coverage for matrix format, output-file flag, and file/stdout writing
  • Documentation

    • Added docs, blog post, and roadmap entry for matrix support
chore: Update Atmos Pro workflow to use v1.215.0 container image @osterman (#2323) ## what
  • Updated the Atmos Pro CI workflow container image from 1.214.0 to 1.215.0
  • Removed the "Build atmos from source" step that compiled a dev binary via go build
  • Changed atmos docs generate readme and atmos pro commit to use the container's pre-installed atmos binary instead of /tmp/atmos-dev

why

  • Atmos v1.215.0 ships with the pro commit command built-in, so building from source is no longer necessary
  • Simplifies the CI workflow and reduces build time by eliminating the Go compilation step

references

  • #2298 (atmos pro commit feature)

Summary by CodeRabbit

  • Chores
    • Updated GitHub Actions workflow to use atmos container image version 1.215.0 (upgraded from 1.214.0).
    • Streamlined workflow execution by removing the local build step and invoking atmos directly from the container image.

🚀 Enhancements

fix: treat missing Atmos config in BASE as empty baseline in `atmos describe affected` @[copilot-swe-agent[bot]](https://github.com/apps/copilot-swe-agent) (#2296) `atmos describe affected` fatally errors with `failed to find import` on greenfield branches (or when the base ref predates Atmos adoption) because `ErrFailedToFindImport` from BASE stack processing was propagated as a hard failure. The correct behavior is to treat an unconfigured BASE as an empty baseline — everything in HEAD is new, therefore everything is affected.

Changes

  • internal/exec/describe_affected_utils.goexecuteDescribeAffected now handles ErrFailedToFindImport alongside ErrNoStackManifestsFound in both BASE processing paths:

    • FindAllStackConfigsInPathsForStack returning ErrFailedToFindImport (stacks directory absent in BASE) → sets remoteStackConfigFilesAbsolutePaths = []string{}
    • ExecuteDescribeStacks returning ErrFailedToFindImport (imports unresolvable in BASE) → sets remoteStacks = map[string]any{}

    Both cases emit a WARN log with actionable context:

    WARN No Atmos stack manifests found in BASE; treating BASE as empty (all HEAD components will be reported as affected)
         hint="This is expected for greenfield branches or when the base branch does not yet use Atmos"
    
  • tests/describe_affected_greenfield_test.go — Integration test that initializes a bare-minimum git repo (single commit, no Atmos config) as the BASE and asserts all known HEAD components (component-1, component-2 in prod/nonprod) appear in the affected output without error.

Don't miss a new atmos release

NewReleases is sending notifications on new releases.