---
title: "Continuous Integration"
description: "Continuous Integration at Sentry validates code changes by running test suites, linters, and other checks to catch bugs and regressions before they reach production, maintaining a high bar for code quality and reliability. CI also builds deployable artifacts like container images, ensuring consistent and reproducible environments across local development and production."
url: https://develop.sentry.dev/development-infrastructure/continuous-integration/
---

# Continuous Integration

## [GitHub Actions](https://develop.sentry.dev/development-infrastructure/continuous-integration.md#github-actions)

We use Github Actions as our primary CI system. With it, we run many quality checks, including but not limited to testing, linting, and code coverage. We only run front end tests if there are front end changes, and vice versa for back end tests. We also run acceptance tests to verify end-to-end functionality. These actions run in pull requests and also merges into the mainline. Pull requests must successfully run all actions in order to be merged into the mainline.

## [Docker images](https://develop.sentry.dev/development-infrastructure/continuous-integration.md#docker-images)

We primarily use [a composite GitHub action](https://github.com/getsentry/action-build-and-push-images) for building and pushing images. This ensures that the workflows for building and publishing images are standardized, and appropriate metadata is available in the images. The standard for artifact management can be found [here](https://www.notion.so/sentry/Standard-Spec-Artifact-Management-22a8b10e4b5d80ecb6dcca3eb4558f5b).

Our other shared composite actions are [documented internally](https://www.notion.so/sentry/Sentry-Composite-Actions-2ab8b10e4b5d80c6bc03fcd3079aed2a).

We use GHCR (github container registry) for images that are used in CI, self-hosted, and local development. GAR (google artifact registry) is used for images that are used in prod.

## [CI workflow for testing changes with getsentry](https://develop.sentry.dev/development-infrastructure/continuous-integration.md#ci-workflow-for-testing-changes-with-getsentry)

See [Workflow](https://develop.sentry.dev/development/workflow.md) for information on testing and reverting.

## [Deployments](https://develop.sentry.dev/development-infrastructure/continuous-integration.md#deployments)

At Sentry we use [GoCD](https://deploy.getsentry.net) for our deployments. Please refer to the [internal deployments documentation](https://www.notion.so/sentry/Deployments-GoCD-2d197a53f2464807962a503cd14d8973) for more information.
