> ## Content Index
> Fetch the complete content index at: https://insights.cloudacio.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# A green CI run is not a deploy
- URL: https://insights.cloudacio.com/a-green-ci-run-is-not-a-deploy/
- Published: 2026-08-12T09:00:00.000Z
- Updated: 2026-08-12T18:34:03.000Z
- Description: A green check on a pipeline means every step that ran, succeeded. It does not mean the steps you cared about ran at all.
- Author: Juan Pablo Olivera
- Tags: Engineering

A green check on a pipeline means every step that ran, succeeded. It does not mean the steps you cared about ran at all.

## How a deploy quietly stops deploying

Ours was one line:

```yaml
- name: Deploy to production
  if: github.event_name == 'push'

```

Everything else about the workflow was correct. Scheduled runs checked out the repository, installed dependencies, built the site with fresh content, resolved cloud credentials — and then skipped the upload, because the event was `schedule` rather than `push`.

The run went green. The build log listed the new content by name. The only thing that disagreed was the object in the bucket.

## A skipped step is not a failure

This is the part worth internalising. CI treats a step skipped by a condition as a non-event. Nothing in the summary distinguishes "deployed" from "decided not to deploy", so the signal you are watching cannot tell you which happened.

## Check the artifact

The fix for the workflow was trivial. The fix for the process is a habit: verify the thing that was supposed to change, not the status of the job that was supposed to change it.

```bash
aws s3 cp s3://my-bucket/index.html - | grep -c "the thing I just added"

```

One command, run against the deployed artifact rather than the pipeline. It is the only check that would have caught this, and it caught it.