Skip to content

Conversation

parkan
Copy link
Collaborator

@parkan parkan commented Sep 22, 2025

MOTIVATION

the workflows in this repo were historically based on PL templates/work patterns, with complex matrix builds, multi-container orchestration, and a huge number of action dependencies

this resulted in repeated breakage due to actions changing, versions not being pinned fully/going out of sync, new golang releases changing linting rules, etc

numerous efforts were made to get that CI workflow working reliably (#443, #436, #467, #581, etc) but ultimately this all feels like threading water at best

to make matters worse, testing the workflows locally is a giant headache because even act doesn't provide an isomorphic environment to what happens on the runners and is not feature complete; normal make test output diverges heavily between local dev and CI

PROPOSAL

  • use devcontainers for reproducible, isomorphic workflows
  • use go.mod as source of truth for go version (already implemented)
  • run DB backends inside devcontainer, lock versions at build, avoid orchestration and IPC issues
  • run all actions that don't touch the releaser flow inside the devcontainer (much cheaper invocations, single container)

NOTE: we're using https://github.com/parkan/github-actions to run a rootless podman devcontainer because:

  • the official microsoft devcontainer ci actions are shockingly broken and don't match the local devcontainer cli/vscode behavior
  • I run a podman dev environment locally and see no reason to use legacy docker over rootless OCI, however my actions support docker if desired

@parkan
Copy link
Collaborator Author

parkan commented Sep 22, 2025

the devcontainer up failure appears to be a bug with the ci version of devcontainers, will implement workaround

@parkan
Copy link
Collaborator Author

parkan commented Sep 24, 2025

ok, the dream of "ci/devcontainers works like vscode devcontainers" is unfortunately not realistic; I may take another stab at this but re-evaluating the strategy might make sense as well

@parkan
Copy link
Collaborator Author

parkan commented Oct 3, 2025

DONE 2162 tests, 8 skipped, 4 failures in 157.313s

we are now running the vast majority of the tests, several of the skips are legacy mongodb, I will review the actual failures but we now have real test coverage again (and locally reproducible 1:1)

@parkan
Copy link
Collaborator Author

parkan commented Oct 3, 2025

needs a bunch of cleanup + running other workflows in devcontainer then will mark as ready for review

@parkan parkan force-pushed the local/devcontainer branch from 821b458 to 65fbf8b Compare October 3, 2025 16:47
@parkan
Copy link
Collaborator Author

parkan commented Oct 14, 2025

ok, I fixed the failing DB related tests/underlying behavior which was revealed by re-enabling the DB backends, migrating remaining actions to use the devcontainer

@parkan
Copy link
Collaborator Author

parkan commented Oct 14, 2025

most of the functionality is working great, I'm waiting to merge #584 to avoid too much divergence and we can get this wrapped up

@parkan parkan force-pushed the local/devcontainer branch from baa23d5 to 7fee74d Compare October 15, 2025 13:24
@parkan
Copy link
Collaborator Author

parkan commented Oct 16, 2025

closing in favor of #586 586

@parkan parkan closed this Oct 16, 2025
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.

1 participant