Get started by learning about the basic concepts used in CircleCI.

Document Description
Overview Overview of Continuous Integration (CI) with links to CircleCI case studies.
Writing YAML An introduction to YAML.
Using Containers An overview of containers and how to use them to increase build speed and prevent queuing.
Using GitHub or Bitbucket An overview of using GitHub and Bitbucket with CircleCI.
Concepts A high-level overview of CircleCI 2.0 Steps, Image, Jobs, and Workflows concepts and the configuration hierarchy.
Jobs and Steps How Jobs and Steps are used in a CircleCI 2.0 configuration.
Choosing an Executor Type Each job may use a different executor and image. Comparison of docker, machine windows, and macos executors for your jobs.
Building Open Source Projects Best practices for building open source projects.


Learn to use the basic features of CircleCI.

Document Description
Using Environment Variables How to use environment variables in the CircleCI app and in the config.yml file.
Using Contexts How to use Contexts to set global environment variables.
Using Shell Scripts Best practices for using shell scripts in CircleCI configuration.
Adding an SSH Key How to add an SSH key to CircleCI.
Debugging with SSH How to use SSH to debug build problems.
Managing API Tokens How to assign scoped tokens for using the CircleCI API.
Skipping and Cancelling Builds How to prevent CircleCI from automatically building changes.
Enabling Notifications How to set or modify Slack, chat, and email notifications in the CircleCI app.
Embedding Build Status Badges How to display the status of your builds on a web page or document.
Storing Artifacts How to store build artifacts in the config.yml syntax and finding links to them in the CircleCI app.
Using the API to Trigger Jobs How to trigger Jobs with the API.
Using Insights How to view status for your repos and build performance data.

We’re thrilled to have you here. Happy building!

The CircleCI Team

Help make this document better

This guide, as well as the rest of our docs, are open-source and available on GitHub. We welcome your contributions.