Vagabonds-Labs / cofiblocks

Welcome to Cofiblocks marketplace: A Starknet web3 platform to innovate Costa Rica coffee industry. Cofiblocks connects small coffee farmers directly with coffee lovers, cutting out unnecessary intermediaries.
https://www.cofiblocks.com/
10 stars 20 forks source link

Design CI/CD Strategy for the Project #22

Open brolag opened 2 months ago

brolag commented 2 months ago

Description:

We need to establish a continuous integration and continuous deployment (CI/CD) strategy for this project to ensure code quality, streamline development, and automate the deployment process.

Key Requirements:

  1. CI Pipeline:

    • Automated tests for all pull requests.
    • Biome (linting and formatting) checks for all commits.
    • Unit tests and integration tests (ensure adequate test coverage).
    • Clear error reporting for failing pipelines.
  2. CD Pipeline:

    • Automatic deployment to staging after successful builds.
    • Enable manual promotion to production after approval.
    • Support for rollback in case of deployment failures.
  3. Tooling:

    • Use GitHub Actions, CircleCI, or other preferred CI/CD tools.
    • Integration with the current GitHub repository.
    • Secrets management for deploying to staging and production.
  4. Notifications:

    • Notifications on build failures (Slack, Email, or GitHub status checks).
  5. Versioning:

    • Implement automated versioning (e.g., Semantic Versioning).

Acceptance Criteria:

Additional Context:

Resources:

IamEnergyI commented 2 months ago

Is there a social media to communicate well, trying to locate it, couldnt find one

falconcr commented 3 days ago

Here's a structured CI/CD implementation proposal for our team based on the GitFlow model:

CI/CD Implementation Proposal

To streamline development and deployment, we will adopt the GitFlow branching model with the following structure:

Branch Workflow

  1. Feature Branches:

    • Naming Convention: feat-<ticket>
    • Developers will work on individual feature branches for isolated development.
  2. Develop Branch:

    • All feature branches will be merged into develop via Pull Requests (PRs).
    • This branch is used for integration testing to ensure all features work as expected.
    • If something breaks during testing, the related ticket will be rejected for fixes.
  3. Main Branch:

    • Only code that has been tested and approved from develop can be merged into main.
    • Direct commits to main are not allowed.
    • All merges into main will go through a PR reviewed and approved by at least one Tech Lead or Lead Developer.

CI Pipeline

  1. Pull Request Checks:

    • Every PR (to develop or main) will:
      • Run linting to enforce code quality standards.
      • Execute unit tests to verify functionality.
    • If any checks fail, developers are responsible for addressing the issues before the PR can proceed.
  2. Develop Environment:

    • Merges to develop will trigger deployment to a development environment (e.g., using Vercel or a similar tool).
    • This environment allows testing of integrated features.
  3. Main Environment:

    • Merges to main will trigger deployment to a production environment.
    • Only code that passes all develop checks and is confirmed to be stable will be merged to main.

Merge Conditions


Key Benefits


This setup will create a disciplined workflow while promoting collaboration and ensuring high-quality code.

@brolag let me know what you think.