We’ve completed a set of orbs and orb commands designed to make the experience of using CircleCI convenience images available to folks using any CircleCI execution environment—from our
macos executors, to any third-party Docker images (including not just Debian/Ubuntu-based images but also those based on Alpine Linux).
What does this mean? Essentially, anyone who does not or cannot use CircleCI’s convenience images, for whatever reason, can now layer on the same tooling and functionality, at job runtime, using first-party CircleCI orbs.
Here is the list of orbs and orb commands that provide this functionality, in the rough order that one would likely want to run these commands in a CircleCI job:
This command installs a set of common packages that are often useful or required in CircleCI jobs—see source for the full list of packages.
This orb’s primary
install command installs the
jq JSON parser, which is required by many other first-party CircleCI orbs for doing things like parsing GitHub’s releases API to grab download links for a particular version of this or that tool.
This command installs the Docker CLI, as well as
dockerize, two commonly used Docker tools.
This command installs Node.js (any release can be installed), allowing users to essentially create a “Node variant” of any Docker image.
This command installs Firefox, Geckodriver, Chrome (or, for Alpine Linux, Chromium), and ChromeDriver—e.g., the same functionality provided by a
-browsers-tagged CircleCI convenience image.
Following is an example outlining the minimum required YAML configuration to run these commands:
version: 2.1 orbs: browser-tools: email@example.com build-tools: firstname.lastname@example.org docker: email@example.com jq: firstname.lastname@example.org node: email@example.com jobs: your-job: docker: - image: your-third/party-image:image-tag steps: - checkout - build-tools/install-ci-tools - jq/install - docker/install-docker-tools - browser-tools/install-browser-tools - node/install workflows: your-workflow: jobs: - your-job
For all tools that support installation of specific versions, or installation to custom directory paths, these orb commands allow that level of customization, as well—so if your team requires a particular version of Docker, or Node.js, or Firefox, or
jq (unlikely, but just in case), etc., you can now easily install the version you need, to the directory of your preference.
This work is part of a company-wide effort to make CircleCI work across as wide a range of execution environments as possible—and also parallels our work on a new set of convenience images designed to be faster, smaller, and more reliable than the current convenience images.
And, finally, all this code is open-source! So if you’d like to see an additional Docker-related tool, or an additional browser-testing tool, added to these orb commands—please file an issue or, even better, submit a pull request against our orb repositories