top | item 42796981

(no title)

olafmol | 1 year ago

Although there are definitely merits in moving the complex logic outside of the CI/CD JSON/YAML DSL, especially when using monorepo setups that can become rather complex in their logic (that they made Google create Bazel, I can think of some interesting Borg/K8s analogies btw), I also believe that modern CI/CD platforms have made several sensible steps in the right direction to handle these more complicated use cases.

(Disclaimer: I work at CircleCI)

At CircleCI for example, we have added valuable features like a VSCode extension[0] to validate and "dry-run" config from within your IDE, we have local runners[1] that you can use to test and run pipelines on your local machine and your own infra, we have dynamic config[2], a Javascript/Typescript SDK[3], a CLI that can validate and run workflows locally[4], and QoL additions like a no-op job type[5] and flexible requires, along with flexible when statements and expression based job filters[6].

And finally, it's of course also possible to combine different approaches into a "best of both worlds" approach, f.e. combining Dagger with CircleCI[7].

[0]https://circleci.com/docs/vs-code-extension-overview/

[1]https://circleci.com/blog/using-runner-for-local-testing/

[2]https://circleci.com/docs/dynamic-config/

[3]https://circleci.com/docs/circleci-config-sdk/

[4]https://circleci.com/docs/how-to-use-the-circleci-local-cli/

[5]https://circleci.com/changelog/new-job-type-no-op-job-can-ma...

[6]https://circleci.com/changelog/more-flexible-job-required-ca...

[7]https://docs.dagger.io/integrations/circleci/

discuss

order

No comments yet.