
Exploring the CircleCI UI
CircleCI has a very friendly UI. Here, you can set various project settings, explore your builds, and drill down into specific builds. Remember that we used a monorepo approach and that, in the build.sh file, we took care of building multiple services. From CircleCI's point of view, Delinkcious is a single cohesive project. Here is the project's view of Delinkcious, which displays the recent builds:

Let's drill down into a successful build. All is well and green:

You can even expand any step and check the console output. Here's the output of the test stage:

This is cool, but it's even more useful when things go wrong and you need to figure out why. For example, at one point, I tried to hide the build.sh script inside the .circleci directory next to the config.yaml file, but it wasn't added to the Docker context and produced the following error:
