Been dealing with this more often lately. Tests pass on my machine, I push, and CI blows up. Usually it’s one of these:

  • Different Node/Python/whatever version
  • Missing env vars that exist in my .env but not in CI secrets
  • File system case sensitivity (macOS vs Linux)
  • Some flaky test that depends on timing

My current debugging flow is pretty basic: check the logs, compare versions, run the exact same Docker image locally if I can. But it still eats 20-30 minutes each time before I figure out the actual problem.

Anyone have a more systematic approach? Like a quick checklist you run through before you even look at the logs?

Also curious — do you replicate your CI environment locally with something like act (for GitHub Actions) or just trust the remote runner?

  • Eager Eagle@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 hour ago

    do you replicate your CI environment locally with something like act (for GitHub Actions)

    this is what does it for me most times; but I usually also have a CI .env file act can use and use just to abstract recipes e.g. when running just test, either CI or local will run depending if the CI env var is set. It’s the same battery of tests, only different env files.