tarides / tezos-ci

OCurrent CI for Tezos
https://tezos.ci.dev
3 stars 7 forks source link
gitlab ocaml tezos unmaintained

Tezos-CI (unmaintained)

A translation of Tezos' Gitlab CI in the ocurrent world.

This project is no longer maintained but serves as a good example for using ocurrent to build a CI system.

What is supported

What remains to do

Running

In OCluster

dune exec -- tezos-ci --ocluster-cap <ocluster_capability_file> \
                      --gitlab-token-file=<GITLAB_TOKEN_FILE> \
                      --gitlab-webhook-secret-file=<WEBHOOK_SECRET_FILE>
                      --verbose

Locally using docker

dune exec -- tezos-ci-local --verbose

Architecture

A high level description of the components

                                     Tezos CI
                         ┌──────────────────────────────────────────┐
                         │                                          │
       (main UI)         │ ┌──────────────────────────────────────┐ │
                         │ │                                      │ │                 ┌───────────────────────────┐
    tezos.ci.dev:80/443  │ │                                      │ │                 │                           │
                         │ │        tezos-ci                      │ │                 │    Tezos OCluster         │
         ───────────────►│ │                                      │ │   submission    │                           │
                         │ │         * octez pipeline             │ │   capability    │   ┌─────────────────┐     │
                         │ │                                      ├─┼────────────────►│   │                 │     │
                         │ │         * web ui                     │ │                 │   │    scheduler    │     │
                         │ │                                      │ │                 │   └──┬──────────────┘     │
                         │ │                                      │ │                 │      │      pools         │
                         │ │                                      │ │                 │      │    ┌─────────────┐ │
                         │ │                                      │ │                 │      │    │             │ │
                         │ │                                      │ │                 │      ├────┤  x86_64     │ │
                         │ │                                      │ │                 │      │    ├─────────────┤ │
       (main UI)         │ └──────────────────────────────────────┘ │                 │      │    │             │ │
                         │                                          │                 │      ├────┤  arm64      │ │
gitlab.tezos.ci.dev:80/  │ ┌──────────────┐     ┌────────────────┐  │   submission    │      │    ├─────────────┤ │
                    443  │ │              │     │                │  │   capability    │      │    │             │ │
        ────────────────►│ │              │     │                ├──┼────────────────►│      └────┤  s390x      │ │
                         │ │ ocaml-ci-web │     │ ocaml-ci-gitlab│  │                 │           └─────────────┘ │
                 :8100   │ │              ├────►│                │  │                 │                           │
                         │ │  * web ui    │ ui  │   * pipeline   │  │                 └───────────────────────────┘
        (admin UI)       │ │              │ cap │   * solver     │  │
                         │ │              │     │   * admin ui   │  │                  1 or more workers per pool
                         │ │              │     │                │  │
                         │ └──────────────┘     └────────────────┘  │
                         │                                          │
                         └──────────────────────────────────────────┘   

Terminology: