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.
build_arm64
, build_x86_64
test_coverage
documentation:build
integration:*
test:*
unit:*
documentation:build_all
, documentation:link_check
, publish:docker_manual
dune exec -- tezos-ci --ocluster-cap <ocluster_capability_file> \
--gitlab-token-file=<GITLAB_TOKEN_FILE> \
--gitlab-webhook-secret-file=<WEBHOOK_SECRET_FILE>
--verbose
dune exec -- tezos-ci-local --verbose
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: