graphql-engine/server/documentation
Samir Talwar 80c977da85 server: Split the integration tests out into their own directories.
We currently have a fairly intricate way of running our PostgreSQL and MSSQL integration tests (not the API tests). By splitting them out, we can simplify this a lot. Most prominently, we can rely on Cabal to be our argument parser instead of writing our own.

We can also simplify how they're run in CI. They are currently (weirdly) run alongside the Python integration tests. This breaks them out into their own jobs for better visibility, and to avoid conflating the two.

The changes are as follows:

- The "unit" tests that rely on a running PostgreSQL database are extracted out to a new test directory so they can be run separately.
  - Most of the `Main` module comes with them.
  - We now refer to these as "integration" tests instead.
- Likewise for the "unit" tests that rely on a running MS SQL Server database. These are a little simpler and we can use `hspec-discover`, with a `SpecHook` to extract the connection string from an environment variable.
  - Henceforth, these are the MS SQL Server integration tests.
- New CI jobs have been added for each of these.
  - There wasn't actually a job for the MS SQL Server integration tests. It's pretty amazing they still run well.
- The "haskell-tests" CI job, which used to run the PostgreSQL integration tests, has been removed.
- The makefiles and contributing guide have been updated to run these.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/6912
GitOrigin-RevId: 67bbe2941bba31793f63d04a9a693779d4463ee1
2022-11-17 12:56:26 +00:00
..
data-sources server/tests: unify HASURA_BIGQUERY_SERVICE_KEY and HASURA_BIGQUERY_SERVICE_ACCOUNT env vars 2022-03-14 07:50:35 +00:00
deep-dives [documentation] add more details to remote joins engineering documentation 2022-10-24 20:54:26 +00:00
glossary.md Structural updates to the server's engineering documentation 2022-05-30 09:46:06 +00:00
overview.md Fix broken links 2022-10-26 14:22:19 +00:00
README.md [gh-pages] Remove broken haddock links from hasura.github.io 2022-05-30 12:22:49 +00:00
tips.md server: Split the integration tests out into their own directories. 2022-11-17 12:56:26 +00:00

Server engineering documentation

This page documents the structure and the internal architecture of the GraphQL Engine Server. To get started, you can read the overview. We also maintain a glossary of all the terms we use throughout the code and the documentation.

You can also get started with a list of tips and tricks.

Haddock documentation

You can browse the engine's haddock documentation for the stable branch, main branch, and every previous version release since v2.2.0.

Architecture deep-dive

Backend-specific documentation

Notes

In our Haskell codebase, we use GHC-style notes for long-form comments detailing a specific aspect of the codebase. We gather all of them, as of the main branch, in the notes subfolder.

Updating this documentation

All markdown files in this folder are either copied verbatim from server/documentation or generated as part of our CI; do not open a PR to modify files in the gh-pages branch, and instead modify their source directly. Notes are extracted using the scripts/extract-nodes bash script. The haddock documentation is generated by running cabal haddock --haddock-internal --haddock-options="--ignore-all-exports".