Settings

Theme

Show HN: PipeStep – Step-through debugger for GitHub Actions workflows

github.com

12 points by photobombastic 6 days ago · 11 comments · 1 min read

Reader

Hey HN — I kept seeing developers describe the same frustration: the commit-push-wait-read-logs cycle when debugging CI pipelines. So I built PipeStep.

PipeStep parses your GitHub Actions YAML, spins up the right Docker container, and gives you a step-through debugger for your run: shell commands.

You can: 1. Pause before each step and inspect the container state. 2. Shell into the running container mid-pipeline (press I). 3. Set breakpoints on specific steps (press B). 4. Retry failed steps or skip past others.

It deliberately does not try to replicate the full GitHub Actions runtime — no secrets, no matrix builds, no uses: action execution. For full local workflow runs, use act. PipeStep is for when things break and you need to figure out why without pushing 10 more commits. Think of it as gdb for your CI pipeline rather than a local GitHub runner.

pip install pipestep (v0.1.2) · Python 3.11+ · MIT · Requires Docker

Would love feedback, especially from people who've hit the same pain point. Known limitations are documented in the README + have some issues in there that I'd love eyeballs on!

nxrabl 5 days ago

This is a compelling idea, but it doesn't seem to work. Running it on a yml I'm working on currently, it skipped all my setup actions and then failed because the dependencies it needed weren't set up (why did you think I wrote them?) There doesn't seem to be a way to force-run a skipped step.

  • photobombasticOP 5 days ago

    Thank you so much! Huge bug. Action steps (uses:) were silently skipped, which meant any workflow relying on setup actions would just fail.

    This should be fixed in v0.1.3. Action steps now pause instead of auto-skipping, and PipeStep offers to run a local equivalent when one exists. It also parses with: inputs, so setup-node with node-version: 18 actually installs Node 18 in the container. Currently supported: checkout, setup-node, setup-python, setup-go, setup-java, cache, upload/download-artifact. Anything unrecognized gives you a clear pause to run commands manually.

    Would genuinely appreciate it if you gave it another shot (pip install --upgrade pipestep) and if you hit anything else, issues on GitHub would be incredibly helpful. The "why did you think I wrote them?" line was exactly the kind of thing I want more of.

    • nxrabl 5 days ago

      Friend. You gotta write your own comments. It feels so gross to get a response that’s so obviously from an llm, I would rather you not have replied to me at all. I will not be using your app.

      • photobombasticOP 5 days ago

        Fully understandable, it's an AI minefield out there! I wrote everything except the technical summary of what I'd updated, just so you know...Claude only helped me there to explain what had changed.

csells 6 days ago

I wouldn't used the hell out of this the last time I was beginning a GitHub action.

westurner 6 days ago

ENH: record the debugging session to a script for reuse and writing tests

  • photobombasticOP 5 days ago

    Love this idea — just shipped it. PipeStep now records every step you run/skip/shell-into and saves a bash script on quit (pipestep-session-YYYYMMDD-HHMMSS.sh). Should be useful for reproducing debugging sessions and as a starting point for tests.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection