Caracal Starter
CI/CD

CI/CD Overview

All you need to know about the CI/CD setup in Caracal.

CI/CD stands for Continuous Integration and Continuous Delivery/Deployment. It is a set of practices that help developers automate the process of building, testing, and distributing applications to end-users (such as app stores for mobile apps).

Having a good CI/CD process in place is crucial for any project. It helps you save time and effort, ensures you are delivering a high-quality product to your users, avoids common mistakes and bugs, reduces time to market, and allows for faster updates.

As most projects are hosted on GitHub, Caracal uses GitHub Actions and Expo EAS as the CI/CD solution. The starter kit comes with over 14 GitHub Actions workflows:

  • .github/workflows/lint-ts.yml: On PR and new commits on the master branch, run linting and formatting checks.
  • .github/workflows/test.yml: On PR and new commits on the master branch, run unit tests.
  • .github/workflows/type-check.yml: On PR and new commits on the master branch, run type checking.
  • .github/workflows/compress-images.yml: On new commits to the master branch, when adding images, open a pull request with the compressed images.
  • .github/workflows/expo-doctor.yml: On PR and new commits to the master branch, check whether dependencies are aligned with the Expo SDK version.
  • .github/workflows/new-app-version.yml: A workflow to manually trigger and update the app version, and publish a tag.

You can check the full list of workflows in the Workflows Reference.

Pushing a new release to the stores is a regular process. To make it easier, Caracal provides a simple process using GitHub Actions and Expo EAS. You can check the full guide in the App Releasing Process.