reivilibre 3a6bcb3cc7
ci/woodpecker/push/ci Pipeline was successful
Add a prototype planner and scheduler (#156)
This PR adds a prototype of: a schema for storing pipeline runs/workflow runs/job runs, a planner and a scheduler.

The planner is very naïve and more or less just feeds the input to the output, after stamping job IDs.
In the future it will be able to do more interesting things.

After the planner runs, the jobs of the workflow are persisted to the database, allocating a workflow ID.
They are then handed over to the scheduler.

The scheduler keeps track of jobs in their various states and queues them to be run once they are ready.

Currently we don't have any runner implementations so the jobs just stay ready to run forever.
This will change after some follow-up work.

We will also add an interface for API clients to query realtime job states within the scheduler.

This PR is quite big so I suggest a commit-by-commit review from the commits tab.

Opens: #158
Reviewed-on: #156
Reviewed-by: Conor <conor@conordev.com>
Co-authored-by: Olivier 'reivilibre <git.oo@emunest.net>
Co-committed-by: Olivier 'reivilibre <git.oo@emunest.net>
2026-06-22 08:55:16 +00:00
2026-06-12 21:59:10 +01:00
2026-06-12 21:59:10 +01:00
2025-08-21 18:41:45 +00:00

CorncrakeCI

CI status badge

About

CorncrakeCI is an in-progress self-hosted CI system.

Prerequisites

Compiling and running code

  1. Clone the repository:

  2. Rename .env.sample to .env in /server and fill in the database credentials, OAuth secrets and encryption key in that file.

    Could use openssl rand -hex 32 to generate an encryption key

  3. Inside /server directory, run:

    pnpm install
    

    then

    docker compose up --build
    

    then in another terminal inside /server directory, run:

    pnpm generate
    
  4. Then

    pnpm run dev
    
S
Description
No description provided
Readme GPL-2.0 1.3 MiB
Languages
TypeScript 92.4%
TypeSpec 6.1%
Nix 1.3%
Dockerfile 0.2%