back to home

prisma / ecosystem-tests

🥼🧬🧪🔬🧫🦠 - Continuously tests Prisma Client with various operating systems, frameworks, platforms, databases and more.

218 stars
24 forks
129 issues
JavaScriptShellTypeScript

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing prisma/ecosystem-tests in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/prisma/ecosystem-tests)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

Prisma Ecosystem Tests This repository continuously tests Prisma Client on and with various operating systems, databases, frameworks, platforms and other setups. | CI Status | Branch | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | | | | | | | | | | | | | | | - | You can check out the latest test runs by checking the "test" workflow results. How it works Projects and Tests The tests are defined in and , and the test projects live in folder of form in this repository. Each has one or multiple jobs in the GitHub Actions Workflows, and the s are part of the matrix per job. • All of the jobs run , which then executes the test project. • The test project can install additional dependencies such as CLIs in the optional . • The standard entrypoint to set up your projects is . This includes installing dependencies, deploying etc. • Test are then triggered via . • Any clean up or logging work can then be done in which is executed in all cases, even when the tests fail. **Note:** You need to use as it's used for bumping dependencies; i.e. run as a first step in your script. **Note:** It's important to add as a and as a normal in each project's . Database Most tests use a database. The GitHub workflow creates and provides a to all jobs, and runs to make sure the project's schema exists on the database. Projects that use an external database use a different environment variable name from . On AWS we use the following 4 databases for these tests: • (AWS ORM Ecosystem Tests 275927176912 us-east-1) • (AWS ORM Ecosystem Tests 275927176912 us-east-1) • (AWS Management Account 243760423205 eu-central-1) • (AWS Management Account 243760423205 eu-central-1) Updates Dependency Renovate is enabled for this repository for all dependencies except and . Our own script handles upgrading prisma-related dependencies since Renovate is too slow for our use case. Prisma When there is a new version, Prismo works tirelessly to commit and push a bump commit, triggering the tests. This is implemented in using a GitHub Action cron job. Since the cron job is limited to run each 5 minutes, we just run each cron job for exactly 5 minutes and check for updates each 10 seconds in each run. This check only runs in the default branch . Branches and npm channels The default branch of this repository contains the test projects with the development version of Prisma CLI and Prisma Client ( on npm). These dependencies are kept up to date with a GitHub Action workflow, which updates them every time a new version of Prisma is released. There are also the branches , and , which mirror the code from (synced via a GitHub Action workflow), but they use the respective development channels of Prisma CLI and Prisma Client from npm instead ( , and , also updated via a GitHub Action workflow). Thanks to the test coverage of all projects, this can point us to incompatibilities early. Checking Test Results To check the current status of this repository somewhere else, you can use a simple shell script. Contributing We use conventional commits (also known as semantic commits) to ensure consistent and descriptive commit messages. Development Workflow We develop directly against GitHub Actions. The workflow looks like this: • Checkout a branch • Make your changes • Push your changes to a PR on GitHub • Inspect the running Checks How to add or adapt test projects • First add a matrix run entry in under the category the project falls into. For example, if you're adding a new platform into the folder, put a new line named after your project folder in under . • Create that folder • Create the required test project files into that folder Shell scripts Please write POSIX-compliant scripts (not bash) and use the the following template for all of your sh files to make sure they exit on errors ( ) and undefined variables ( ):