Skip to content

Latest commit

 

History

History
executable file
·
151 lines (104 loc) · 6.01 KB

File metadata and controls

executable file
·
151 lines (104 loc) · 6.01 KB

Canyon GitHub license contributions welcome Ask DeepWiki docker image size Made with Prisma

Warning

The main branch is currently in beta testing. For the stable branch, please use main-0128

👋 Canyon is a JavaScript code coverage solution

Video Showcase

Bilibili YouTube

Ecosystem

Project Status Description
babel-plugin-canyon babel-plugin-canyon-status Detecting environment variables in the pipeline
canyon-uploader canyon-uploader-status Coverage data uploader
canyon-extension canyon-extension-status Chrome plugin for coverage reporting of manual tests

Project Structure

Canyon (pronounced /ˈkænjən/) is a JavaScript code coverage collection platform. We address the difficulties developers and QA engineers encounter in collecting test case code coverage during end-to-end testing. It consists of three main parts:

  • A series of plugin responsible for adapting to various CI tools and reading environment variables.

  • An API service responsible for collecting and processing coverage data.

  • A set of front-end and back-end services responsible for displaying coverage reports.

Read the Docs to Learn More.

Architecture

%%{init: {
  "theme": "base",
  "themeVariables": {
    "primaryColor": "#FFF7ED",
    "primaryBorderColor": "#FB923C",
    "lineColor": "#9CA3AF",
    "fontFamily": "Inter, system-ui"
  }
}}%%

flowchart LR
  classDef client fill:#EEF2FF,stroke:#6366F1,color:#1E1B4B;
  classDef test fill:#F1F5F9,stroke:#94A3B8,color:#020617;
  classDef core fill:#FFF7ED,stroke:#FB923C,color:#7C2D12;
  classDef storage fill:#ECFEFF,stroke:#06B6D4,color:#083344;
  classDef infra fill:#F0FDF4,stroke:#22C55E,color:#14532D;
  classDef external fill:#FAFAFA,stroke:#D1D5DB,color:#111827;

  %% Clients
  UI[UI Automation]
  WebUI[Canyon Web UI]
  API[API Client]

  class UI,WebUI,API client

  %% Test
  Test[Test Environment]
  Pipeline[CI / CD Pipeline]

  class Test,Pipeline test

  UI --> Test
  Pipeline --> Test

  %% Canyon Core
  subgraph Canyon["Canyon Server"]
    MQ[Message Queue]
    DB[(Postgres)]
    HTTP[HTTP / GraphQL Server]
  end

  class MQ,HTTP core
  class DB storage

  Test --> MQ
  MQ --> DB
  DB --> HTTP

  %% Infra
  subgraph Deploy["Service Deployment"]
    K8s[Kubernetes]
    Node[Node.js]
  end

  class K8s,Node infra

  Canyon --> Deploy

  %% External
  GitLab[GitLab]
  class GitLab external

  Canyon -.-> GitLab

  WebUI -.-> HTTP
  API -.-> HTTP

Loading

WeChat Group

Developing

Follow our self-hosting documentation to get started with the development environment.

Contributing

Please contribute using GitHub Flow. Create a branch, add commits, and open a pull request.

Please read CONTRIBUTING for details on our CODE OF CONDUCT, and the process for submitting pull requests to us.

License

This project is licensed under the MIT License — see the LICENSE file for details.