# CI Job Summaries

The `ci.summary` section configures rich Markdown job summaries that are written after plan and apply
operations. On GitHub Actions, these are written to `$GITHUB_STEP_SUMMARY`.

> ⚠️ Experimental

## Configuration

**File:** `atmos.yaml`

```yaml
ci:
  summary:
    enabled: true
```

- **`ci.summary.enabled`**

  Write rich summaries with resource badges, collapsible diffs, and terraform outputs.
  On GitHub Actions, writes to `$GITHUB_STEP_SUMMARY`. On GitLab CI, creates job artifacts.

  **Default:** `true`

## Plan Summary Format

Plan summaries include resource counts as inline badges, destruction warnings, and a collapsible
resource list:

```markdown
## Plan: `vpc` in `plat-ue2-dev`

[![create](https://shields.io/badge/CREATE-3-success?style=for-the-badge)](#)
[![change](https://shields.io/badge/CHANGE-1-warning?style=for-the-badge)](#)
[![destroy](https://shields.io/badge/DESTROY-2-critical?style=for-the-badge)](#)

> [!CAUTION]
> **Terraform will delete resources!**

<details>
<summary>Plan: 3 to add, 1 to change, 2 to destroy</summary>

### Create
- `aws_vpc.main`
- `aws_subnet.public[0]`
- `aws_subnet.public[1]`

### Change
- `aws_security_group.web`

### Destroy
- `aws_security_group.deprecated`
- `aws_route.legacy`

</details>
```

## Apply Summary Format

Apply summaries show the result of the apply operation, including resource counts and any
terraform outputs that were produced.

## Custom Templates

Override the default summary templates with your own Markdown. See [Templates](/cli/configuration/ci/templates)
for configuration and template variables.

## Local Testing

Test summaries locally by setting the summary output path:

```bash
export ATMOS_CI_SUMMARY=/tmp/summary.md
atmos terraform plan mycomponent -s dev --ci
cat /tmp/summary.md
```

## Related

- [CI Configuration](/cli/configuration/ci) - Full configuration reference
- [Templates](/cli/configuration/ci/templates) - Custom template configuration
- [Job Summaries](/ci/job-summaries) - Feature overview
