Package, ship, and re-use config with orbs.
/ôrb/ noun
A reusable package of YAML configuration that condenses repeated pieces of config into a single line of code.
Why use an orb?
Orbs are reusable snippets of code that help automate repeated processes, speed up project setup, and make it easy to integrate with third-party tools.
- Save time on project configuration
- Increase organizational efficiency
- Simplify third-party integrations
Use a pre-built orb
To use a pre-built orb, copy the config code from the orbs registry into your team’s config file. Our extensive list of orbs are held in an open source code library. Try something new without committing days of engineering time to setting up a new system, feature, or DevOps practice.
Create an orb for your team
If you don’t see an orb that fits your needs, create a specialized orb using our Best Practices and Getting Started guides. Our Orb Development Kit makes the authoring process simple, with automated testing and deployment on CircleCI. If your team wants to share configuration across multiple projects, exclusive to your organization, you can create private orbs. All the orbs you create can be easily tracked, saved for future use, and updated from within the CircleCI application.
Explore orb use cases
Save time on project configuration and easily set up third-party integrations.
Reusable commands, executors, and jobs
Orbs define reusable commands, executors, and jobs so that commonly used pieces of configuration can be condensed into a single line of code.
version: 2.1
description: An orb with some simple ways to help you with your first build.
commands:
circleci-env-highlights:
steps:
- run:
command: |-
echo "TRIGGERER: ${CIRCLE_USERNAME}"
echo "BUILD_NUMBER: ${CIRCLE_BUILD_NUM}"
echo "BUILD_URL: ${CIRCLE_BUILD_URL}"
echo "BRANCH: ${CIRCLE_BRANCH}"
echo "RUNNING JOB: ${CIRCLE_JOB}"
echo "JOB PARALLELISM: ${CIRCLE_NODE_TOTAL}"
echo "CIRCLE_REPOSITORY_URL: ${CIRCLE_REPOSITORY_URL}"
name: Show some of the CircleCI runtime env vars
hello-triggerer:
parameters:
to:
default: ${CIRCLE_USERNAME}
type: string
steps:
- run: echo "Hello << parameters.to >>"
system-info:
steps:
- run:
command: |-
echo "uname:" $(uname -a)
echo "arch: " $(arch)
name: Show system information
executors:
default:
docker:
- image: circleci/buildpack-deps:<< parameters.tag >>
parameters:
tag:
default: curl-browsers
type: string
jobs:
hello-build:
executor: default
steps:
- hello-triggerer
- circleci-env-highlights
- system-info