Job builder-web on debian-12
README
Skip to buildsBuilder-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.
Less common workflows
Here are listed some less common but useful workflows:
Extracting builds from one server to another
This is useful for development on a separate machine that doesn't run the build jobs itself.
On the source server:
builder-db extract-build <build-hash> --dest <build-hash>.full
After copying the file over the destination server (you need a user first,
see builder-db user-add --help
):
curl --data-binary @<build-hash>.full http://<user>:<passwd>@localhost:<builder-web-port>/upload
Builds
Back to readme- ☑ debian-12 2024-12-01 18:53:02Z builder-web.deb
SHA256:85c1850958f0d72f31b35bfc06b5a2a861d6bd095f59582e9bccca26a258c297
(14.9MB) - ☑ debian-12 2024-11-15 14:12:22Z builder-web.deb
SHA256:43ed2759f28e49e4148216928f998296910b97d042b2d40e0051b1af6d5b286b
(14.9MB) - ☑ debian-12 2024-11-14 14:01:33Z builder-web.deb
SHA256:c5758ae8fc418355130aee518a3dc1960c47bdeca98272b4eb4979b3685869c7
(14.9MB) - ☑ debian-12 2024-11-08 14:01:25Z builder-web.deb
SHA256:6a6e62b25d1daaed0d437e5899e968c1fe36c4f2a50848620bf48ca083a90f52
(14.9MB) - ☑ debian-12 2024-10-24 14:01:13Z builder-web.deb
SHA256:b2dcedbbc3f90448def598a0ee4f7eec3c314653d4057449bfcf7d45179b0b8a
(14.9MB) - ☑ debian-12 2024-09-27 14:00:48Z builder-web.deb
SHA256:55025fc1496dc018df858dddad4d111490e40a622cebc61f176493122bbcb9ce
(14.9MB) - ☑ debian-12 2024-09-26 14:29:07Z builder-web.deb
SHA256:6430749e43066cc7f343bba6f5783b134dcf6cd37a619f69160d8b02a4601579
(16.1MB) - ☑ debian-12 2024-09-20 14:28:09Z builder-web.deb
SHA256:174e202838c4523435ed9b77f5740b3ed57c2862000833d0e8dc069a0666e2a2
(16.1MB) - ☑ debian-12 2024-09-13 14:11:23Z builder-web.deb
SHA256:be7e23168ede8e8cc6674573ccceca2c04e3cfe598caca64784b9cbecde5aa09
(16.1MB) - ☑ debian-12 2024-09-12 14:00:42Z builder-web.deb
SHA256:9a5b46ab9ed16d182a81f277ce32d55f2051e68b6383ff374020caa4983ef03f
(16.1MB) - ☑ debian-12 2024-09-09 14:00:36Z builder-web.deb
SHA256:034ea4899cfe8137d292760adf5c94908041ab6420efefc0d263bc39958feeaf
(14.9MB) - ☑ debian-12 2024-09-05 14:29:39Z builder-web.deb
SHA256:4e891061fc5338971f0269380dea5d44cc2afb7b50f37f89d5263a3f7478f0f8
(15.1MB) - ☑ debian-12 2024-09-03 14:00:29Z builder-web.deb
SHA256:6701e16b3d245fc17e7b795b45cc757148511e5b6a272a5a8907332b2394da65
(15.1MB) - ☑ debian-12 2024-08-30 14:29:27Z builder-web.deb
SHA256:8c54604c16aca7b1dbca905182932b2593c98adcb96306d7511cf240bde062f6
(15.1MB) - ☑ debian-12 2024-08-23 14:12:46Z builder-web.deb
SHA256:283cb4e286694371d861d0f1eeb3e058e50a0bcc657abdab281b1a246c6fbb9d
(15.1MB) - ☑ debian-12 2024-08-22 14:00:24Z builder-web.deb
SHA256:383335b275111a8dd8fbe331bd4b1220588a276ad180c77bea56f832a95fda13
(15.1MB) - ☑ debian-12 2024-08-21 14:30:06Z builder-web.deb
SHA256:bfc643705c59c4ccaa8e8417bb6dc4bfdf68cf5b9da71304e90f9ab68dab5e4f
(15.1MB) - ☒ debian-12 2024-08-18 14:30:22Z Build failure: exited 20
- ☒ debian-12 2024-08-17 14:12:51Z Build failure: exited 20
- ☒ debian-12 2024-08-16 14:00:18Z Build failure: exited 20
- ☒ debian-12 2024-08-15 14:29:01Z Build failure: exited 31
- ☒ debian-12 2024-08-14 14:10:20Z Build failure: exited 31
- ☑ debian-12 2024-08-13 14:04:07Z builder-web.deb
SHA256:d7bf6019bd044b238b36c442035111f2c0b90cbb05fcd3075f030c4c99959b8e
(13.5MB) - ☒ debian-12 2024-08-11 14:10:24Z Build failure: exited 31
- ☒ debian-12 2024-08-10 14:04:02Z Build failure: exited 31
- ☒ debian-12 2024-08-09 14:23:56Z Build failure: exited 31
- ☒ debian-12 2024-08-08 14:10:25Z Build failure: exited 31
- ☑ debian-12 2024-08-06 14:24:47Z builder-web.deb
SHA256:9b53481db5d76c7c572e9696f54057fcb00e3faf4733f87b92e4bd955d41d139
(13.5MB) - ☑ debian-12 2024-07-20 14:10:37Z builder-web.deb
SHA256:f9197a2f503cf8d673c3247892c16c0fd99e99c6b3a11aff3623b5f5331434e7
(13.5MB) - ☑ debian-12 2024-07-15 10:55:25Z builder-web.deb
SHA256:25cde2746d2403cbad2d3910358ddbc7f1344e2bf7272c21d2f32f281efa8431
(13.5MB) - ☑ debian-12 2024-07-02 14:10:19Z builder-web.deb
SHA256:4d502f1ad59736324bf7866791342e9cefb7f76d819470f470c0ffad4d1e9589
(13MB) - ☑ debian-12 2024-06-28 14:04:54Z builder-web.deb
SHA256:3aac602c2ab6d337a116c3b3c41f2e891c81d51f34f5cf031a96511886ae72ad
(13MB)
Excluding failed builds here.