Web interface for builder
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Robur 8489d1ff36 Remove README from build page 2 months ago
auth add explicit package dependencies 7 months ago
bin sql: use $N instead of ?N as numbered placeholder 2 months ago
db Rewrite queries to take optional platform 2 months ago
http_status_middleware Add http status metrics middleware 8 months ago
lib Remove README from build page 2 months ago
opamdiff investigate differences in build, install, and uri when opam file differed (#48) 7 months ago
packaging debian postinst: fix user/group mixup 2 months ago
test markdown sanitization, addresses issue #46 2 months ago
.gitignore avoid deprecated functions from Fmt (strf is now str) 3 months ago
CHANGES.md Prepare for initial public release 2 months ago
LICENSE.md debian packaging 7 months ago
README.md Prepare for initial public release 2 months ago
builder-web.opam opam: require metrics 0.3.0 and above 2 months ago
dune-project Initial commit 1 year ago

README.md

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 executed. builds.robur.coop itself runs builder-web.

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.
  • Compare two builds, observing the differences in used opam packages, environment variables, and system packages.
  • Search for the SHA-256 hash of a binary to view a build that resulted in that binary.

Installation

Installing from source can be done with opam: opam install builder-web.

We also provide reproducible binary packages.

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.

Service scripts for FreeBSD and systemd are provided.

The web server expects a sqlite3 database in its data directory. An empty database can be created with builder-db migrate.

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 builder-migrations --help output for each migration for further details.