Skip to content

OCaml Build Infrastructure

Thomas Leonard edited this page Oct 2, 2020 · 43 revisions

This page is work in progress, by @avsm

There is a hosted machine cluster operated by OCaml Labs that runs regular health checks against the opam package repository, and also runs 'cron' jobs to keep the operational side of things running.

Users can access this information through a variety of mechanisms:

Available Machines

  • Rackspace:
    • TODO amd64
  • Packet.net:
    • TODO arm64
    • m1a - ocluster
    • m1bc - ocluster
    • m1d - TODO freebsd
  • Cambridge Computer Laboratory:
    • aello:
    • bremusa: benchmarking (tom kelly/sadiq)
    • clete: gitlab-runner (amd64, docker/shell)
    • eumache: hub.ocamllabs.io (jonludlam)
    • hipp: check.ocamllabs.io
    • laodoke: ocaml-ci (talex5/craigfe)
    • phoebe: ocaml-ci (talex5/craigfe)
    • toxis: ci.ocamllabs.io
    • grumpy:
    • dopey:
    • roo: (slow i/o. 48 core)
    • tigger: (slow i/o. 48 core)
    • uriel:
    • gabriel:
    • michael:
    • raphael:
    • simba:
    • pima: ci.ocaml.org (talex5/kate)
    • hopi: dra27 and windows
    • cree: testing OBuilder (talex5)
    • comanche: @samoht for irmin
    • apache: ocurrent build scheduler (talex5/avsm)
    • navajo: multicore CB machine (kc/shakthi)
    • summer: developer dev machine (linux) with lots of accounts
    • autumn: magnus for irmin benchmarking
    • winter: shakthi/tom kelly for benchmarking
    • spring: shakthi/damien for OCaml GC sandmark
    • caelum-613: shagun/kc/avsm for multicore tracing
    • caelum-512: avsm for xen
    • caelum-514: openbsd for opam infra
    • caelum-614: shakthi/tom kelly for benchmarking (bench2.ocamllabs.io)
  • TODO ppc64
  • TODO arm64

Cambridge Computer Laboratory

Packet filter

There is an edgerouter at gw.ocamllabs.io that acts as a router and packet filter for the internal machines. A quick guide to using it is via an ssh terminal is:

$ configure
[edit]
# edit firewall name CL_IN4
[edit firewall name CL_IN4]
# show
[edit firewall name CL_IN4]
# set rule 20 destination address 128.232.124.213
[edit firewall name CL_IN4]
# set rule 20 protocol tcp
[edit firewall name CL_IN4]
# set rule 20 destination port 80,443,8100
[edit firewall name CL_IN4]
# set rule 20 action accept
[edit firewall name CL_IN4]
# set rule 20 description ci.ocamllabs.io
[edit firewall name CL_IN4]
# show
<examine diff>
[edit firewall name CL_IN4]
# commit
[edit firewall name CL_IN4]
# save
Saving configuration to '/config/config.boot'...
Done
[edit]
# exit