dev
ci/woodpecker/push/ci Pipeline was successful
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>
CorncrakeCI
About
CorncrakeCI is an in-progress self-hosted CI system.
Prerequisites
- Docker
- Node.js
pnpmpackage manager
Compiling and running code
-
Clone the repository:
-
Rename
.env.sampleto.envin /server and fill in the database credentials, OAuth secrets and encryption key in that file.Could use
openssl rand -hex 32to generate an encryption key -
Inside /server directory, run:
pnpm installthen
docker compose up --buildthen in another terminal inside /server directory, run:
pnpm generate -
Then
pnpm run dev
Languages
TypeScript
92.4%
TypeSpec
6.1%
Nix
1.3%
Dockerfile
0.2%