Code-Test-Debug-Repeat, Quickly

By: Matt Jachowski

Code-Test-Debug-Repeat, Quickly

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

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.

Changing the number of cpu cores that a node has access to

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.