Continuous Integration

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.

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.

We primarily use a composite GitHub action 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.

Our other shared composite actions are documented internally.

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.

See Workflow for information on testing and reverting.

At Sentry we use GoCD for our deployments. Please refer to the internal deployments documentation for more information.

Was this helpful?
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").