Code-Test-Debug-Repeat, Quickly
By: Matt Jachowski
As a developer, I am most productive when I have a tight code-test-debug cycle:
write code → run tests → debug failures → test again → write more code
I get a lot done when I can launch tests and verify fixes easily and quickly. But as the time to complete the middle steps increases, my productivity plummets.
CI/CD tools often treat debugging as an afterthought, adding extra steps that slow you down:
- forcing you to commit a change to trigger a test
- requiring you to connect to a remote machine to debug
- rerunning the whole pipeline from the beginning every time
Conducto is a CI/CD tool designed to shorten this cycle and keep you dialed in. It has multiple features that enable you to:
- quickly reproduce errors on your local machine
- make fixes and test them at the point of failure
With Conducto, you will spend less time debugging, less time waiting for pipelines to run, less money on compute resources, and more time being productive. These are the features that set Conducto apart:
- Debug Locally with Full Context
- Quick Tweaks to Commands, Environment, and Resources
- Update Code on the Fly
- Retry or Skip Tasks with Intermittent Problems
Debug Locally with Full Context
When one of the tasks in your pipeline has a problem, quickly reproduce the bug on your local machine:
- select a node
- click the Debug button to copy a debug command
- paste it into your terminal
You'll get a shell in a container with the exact code, environment, and command that ran in your pipeline. From there you can re-run the command to reproduce the error and make changes until it works.
Here's a example where we notice a remote command is taking to long, explore it locally, and then fix the stuck command. It takes about a minute.
Quick Tweaks to Commands, Environment, and Resources
If you simply need to tweak the command or an environment variable, do it directly in the Conducto app. Then reset the node to run it with the new value.
You can modify the allocated CPU cores and available memory in the same way.
Update Code on the Fly
Here's a familliar cycle:
hackity hack → save change → rerun previous command → see change in action
You can live-edit the code that's mounted in a Conducto debug session. This makes the above cycle possible.
Once the code looks good, include your fixes in the pipeline by rebuilding the node--no need to restart the whole pipeline.
Retry or Skip Tasks with Intermittent Problems
When a task fails due to a transient error, like a timeout or network hiccup, you can re-run or skip it.
Be More Productive With Conducto
Conducto is a pipeline tool written by developers who appreciate the value of staying focused with a lean code-test-debug cycle. It is designed from the ground up to minimize the time you spend reproducing debug environments and waiting for pipelines to run. It will reduce your compute bill and make you more productive.