A web user interface and API for our reproducible builds of MirageOS unikernels and host system tools.
Find a file
Reynir Björnsson 147163a92b debian: correct sqlite3 dependency
It is called libsqlite3-0 and not libsqlite3 for whatever reason.
2021-07-29 16:36:44 +02:00
auth add explicit package dependencies 2021-06-09 16:03:03 +00:00
bin remove README.md and build-hashes from build_artifact table and file system 2021-07-12 14:10:54 +00:00
db remove result_kind from build table (de-duplicate information), add some indexes 2021-07-12 13:31:36 +00:00
http_status_middleware Add http status metrics middleware 2021-06-08 12:36:53 +00:00
lib remove README.md and build-hashes from build_artifact table and file system 2021-07-12 14:10:54 +00:00
opamdiff investigate differences in build, install, and uri when opam file differed (#48) 2021-07-06 08:34:17 +00:00
packaging debian: correct sqlite3 dependency 2021-07-29 16:36:44 +02:00
test in /job/:job/build/:build output links to: 2021-07-12 13:31:35 +00:00
builder-web.opam render README from latest build (preserved as a tag value in job_tag table) 2021-06-30 12:47:30 +00:00
dune-project Initial commit 2020-12-04 18:10:21 +01:00
LICENSE.md debian packaging 2021-06-29 09:41:05 +00:00
README.md Add README.md 2021-06-29 09:09:52 +00:00

Builder-web - a web frontend for reproducible builds

Builder-web takes in submissions of builds, typically from builder, and displays the produced artifacts in a way that makes it easy to compare checksums and build status. Produced binaries can be downloaded and run by users.

Overview

Builder-web is a single binary web server using a sqlite3 database with versioned schemas. Finished builds from builder are uploaded to builder-web, stored and indexed in the database and presented in the web interface to the user. Users can:

  • Get an overview of jobs - a job is typically script or opam package that is run and builds an artifact,
  • Browse all builds of a job - each job may have multiple builds, that are executed periodically by builder
  • Browse individual build and download artifacts and build information for reproducing the same binary. Each build has a single binary as output - which checksum is recorded and can be searched for. The build information (opam acpackges, environment variables, host system packages) can be compared, and they may differ even if the checksum of the binary is identical.

The build artifacts are stored on the filesystem, its metadata is stored in the database.

Setup

Builder-web consists of a binary builder-web that runs a web server on port 3000 listening on all interfaces by default. These values can be changed with the --port and --host flags respectively. See builder-web --help for more information.

The web server expects a sqlite3 database in its data directory.

Database migrations

The sqlite3 database builder-web uses contains versioning information. On every schema change the database schema version is updated, and migration and rollback scripts are provided. The tool for database migrations is builder-migrations. See the --help output for each migration for further details.