graphql-engine/server/src-lib/Hasura/GraphQL
Antoine Leblanc 3525e60021 Deploy server documentation to github page in CI
_(This PR is on top of #3352.)_

## Description

This PR overhauls our documentation CI steps to push all generated server documentation to the `gh-pages` branch of the OSS repo. The goal of this PR is to arrive in the situation where `https://hasura.github.io/graphql-engine/server/` is automatically populated to contain the following:
  - all the markdown files from `server/documentation`, copied verbatim, no transformation applied
  - all the notes, collected from the code by the `extract-notes.sh` script, in `server/notes`
  - the generated haddock documentation for each major release or branch in `server/haddock`.

To do so, this PR does the following:
  - it includes the script to extract notes from #3352,
  - it rewrites the documentation checking CI step, to generate the notes and publish the resulting "server/documentation" folder,
  - it includes a new CI step to deploy the documentation to the `gh-pages` branch

Of note:
  - we will generate a different haddock folder for each main branch and release; in practice, that means the _main_, _stable_, _alpha_, _beta_ branches, and every build tagged with a version number
  - the step that builds the haddock documentation checks that ALL projects in the repo build, including pro, but the deploy only deploys the graphql-engine documentation, as it pushes it to a publicly-accessible place

## Required work

**DO NOT MERGE THIS PR IT IS NOT READY**. Some work needs to go into this PR before it is ready.

First of all: the `gh-pages` branch of the OSS repo does NOT yet contain the documentation scaffolding that this new process assumes. At the bare minimum, it should be a orphan branch that contains a top-level README.md file, and a _server_ folder. An example of the bare minimum required can be previewed [on my fork](https://nicuveo.github.io/graphql-engine/server/).

The content of the `server/documentation` folder needs to be adjusted to reflect this; at the very least, a `README.md` file needs to be added to do the indexing (again, see the placeholder [on my fork](https://nicuveo.github.io/graphql-engine/server/) for an example).

This way of publishing documentation must be validated against [proposed changes to the documentation](https://github.com/hasura/graphql-engine-mono/pull/3294). @marionschleifer what do you think?

~~The buildkite code in this branch is currently untested, and I am not sure how to test it.~~

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/3380
GitOrigin-RevId: b24f6759c64ae29886c1f1b481b172febc512032
2022-01-31 13:16:29 +00:00
..
Execute Add default User-Agent header for Action requests 2022-01-31 06:50:13 +00:00
Parser Deploy server documentation to github page in CI 2022-01-31 13:16:29 +00:00
Schema Prevent uses of unsafeMkName whenever possible. 2022-01-27 15:13:37 +00:00
Transport Experimental backend adapter 2021-12-22 00:11:28 +00:00
Analyse.hs Fixed GQL aliases not being respected in the OpenAPI schema 2022-01-27 05:55:55 +00:00
Context.hs Source typename customization (close graphql-engine#6974) 2021-10-29 14:43:14 +00:00
Execute.hs multitenant: support for starting multitenant in read only mode 2021-12-08 06:27:49 +00:00
Explain.hs Source typename customization (close graphql-engine#6974) 2021-10-29 14:43:14 +00:00
Logging.hs Source typename customization (close graphql-engine#6974) 2021-10-29 14:43:14 +00:00
Namespace.hs Refactor type name customization 2021-11-30 09:52:53 +00:00
ParameterizedQueryHash.hs Prevent uses of unsafeMkName whenever possible. 2022-01-27 15:13:37 +00:00
Parser.hs server, pro: actually reformat the code-base using ormolu 2021-09-23 22:57:37 +00:00
RemoteServer.hs Add request body to OpenAPI 2021-12-22 08:31:14 +00:00
Schema.hs server: use placeholder to prevent empty query roots 2022-01-27 18:08:11 +00:00