VibeFast
Testing & Quality

CI/CD Workflows

An overview of the automated GitHub Actions workflows that ensure code quality and handle deployments.

VibeFast is equipped with a suite of pre-configured GitHub Actions workflows to automate essential tasks like testing, linting, and building the application. These workflows are located in the .github/workflows/ directory.

Code Quality Workflows

These workflows run on every pull request and push to the main branch to ensure code quality and consistency.

Lint & Type Check

File: lint-ts.yml

Runs ESLint and the TypeScript compiler (tsc --noemit) to catch code style issues and type errors before they are merged.

Unit Tests

File: test.yml

Executes the entire Jest test suite (pnpm test:ci). On pull requests, it posts a detailed coverage report as a comment.

Dependency Check

File: expo-doctor.yml

Runs expo doctor to verify that all project dependencies are compatible and correctly configured. This prevents "works on my machine" issues.

Deployment & Release Workflows

These workflows handle the process of building the app and managing releases.

EAS QA Build

File: eas-build-qa.yml

Trigger: Runs automatically when you publish a new GitHub Release.

This workflow triggers a new staging build on Expo Application Services (EAS) for both Android and iOS. It's the primary way to get internal test builds to your team.

EAS Production Build

File: eas-build-prod.yml

Trigger: Manual dispatch from the GitHub Actions tab.

This workflow is for creating your production-ready builds that will be submitted to the app stores.

New App Version

File: new-app-version.yml

Trigger: Manual dispatch from the GitHub Actions tab.

This workflow helps you correctly version your app. It bumps the version in package.json, creates a new Git tag, and pushes it to the repository. This push then triggers the New GitHub Release workflow.

Utility Workflows

Compress Images

File: compress-images.yml

Trigger: Runs when new .jpg, .png, or .webp files are pushed.

This workflow automatically compresses any new images you add to the repository and creates a new pull request with the optimized files.