Skip to content

Conversation

@jmgilman
Copy link
Collaborator

@jmgilman jmgilman commented Jan 2, 2026

Summary

  • Fixes CI failures for systemd and dind image builds caused by parallel workflow execution
  • Consolidates three separate workflows into one images.yml with job dependencies
  • Removes redundant skip condition from build-image.yml

Root Cause

The three image workflows (image-base.yml, image-systemd.yml, image-dind.yml) all triggered simultaneously when build-image.yml was modified. Since they ran in parallel, systemd and dind failed because their base images (ghcr.io/gilmanlab/headjack:base and :systemd) hadn't been pushed yet.

Solution

Consolidated into a single workflow with job dependencies:

base → (wait) → systemd → (wait) → dind
  • systemd has needs: base
  • dind has needs: systemd
  • Only base runs on PRs (via job-level if condition)

Test plan

  • Verify Images workflow appears in GitHub Actions
  • Confirm base job runs and completes successfully
  • Verify systemd job waits for base to complete before starting
  • Verify dind job waits for systemd to complete before starting

🤖 Generated with Claude Code

The separate image workflows (image-base.yml, image-systemd.yml,
image-dind.yml) ran in parallel when build-image.yml was modified,
causing systemd and dind builds to fail because their base images
hadn't been pushed yet.

This consolidates the three workflows into a single images.yml with
job dependencies:
- base builds first
- systemd waits for base (needs: base)
- dind waits for systemd (needs: systemd)

Also removes the now-unnecessary skip condition from build-image.yml
since PR skipping is handled at the job level.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@jmgilman jmgilman merged commit b8ec1be into master Jan 2, 2026
4 checks passed
@jmgilman jmgilman deleted the fix/ci-image-build-order branch January 2, 2026 00:31
jmgilman added a commit that referenced this pull request Jan 3, 2026
Current behavior:
Separate image workflows ran in parallel, causing systemd and dind builds to fail because their base images hadn't been pushed yet

New behavior:
Single images.yml workflow with job dependencies ensures base builds first, then systemd waits for base, then dind waits for systemd

Closes: #24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants