Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: ability to (easily) run CI tests locally #318

Open
kirederik opened this issue Jan 8, 2025 · 0 comments
Open

chore: ability to (easily) run CI tests locally #318

kirederik opened this issue Jan 8, 2025 · 0 comments

Comments

@kirederik
Copy link
Member

We want the ability to run whatever CI is running locally, with the same version of all the dependencies, in a quick and straightforward way.

There's basically two anti-patterns we should fix as part of this story:

Software Versions

Most of our CI jobs start installing a set of software dependencies, like golang, Kind, kubectl, flux, etc. Those versions have no correlation with the versions we execute locally. This goes against one of the foundations of Continuous Delivery. We should centralise the versions we use somewhere, and make sure that running the tests locally use the exact same versions as CI. As a side effect, bumping the local version should automatically update the version on CI.

Embedded scripting

Some of our CI jobs embed the steps into the YAML itself (like the helm-charts e2e tests). Even worse when the job is made of many steps, all of them running their own sets of scripts. To run it locally, one needs to manually copy-and-paste scripts from CI and adapt it for local execution.

A better solution is to make CI as simple as possible, ideally only one-liners that execute scripts/target we can run locally.

Note

There are a few tools, like Dagger and Garden.io, that promise that portability from CI to local. Spend some time investigating some of those tools and ponder if it's worthy bringing them in now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant