Job builder-web
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-11 2024-07-26 14:04:04Z builder-web.deb
SHA256:f2de62e56b4055a3277f8bbd2e1c54e0c7d78458d5f9c1ecb4355976c5afad4c
(12.9MB) - ☑ debian-12 2024-07-26 14:03:54Z builder-web.deb
SHA256:9b53481db5d76c7c572e9696f54057fcb00e3faf4733f87b92e4bd955d41d139
(13.5MB) - ☑ freebsd-14 2024-07-26 12:19:50Z builder-web.pkg
SHA256:8f08137e61f9b0e36457c57a35d96417cce22126538a798cb0bc91ae78d2d173
(11.2MB) - ☑ debian-11 2024-07-20 14:10:55Z builder-web.deb
SHA256:dfe4f8063e07656a47cb06ec631f0a69726c432d894c135ac0a03136de86905d
(12.9MB) - ☑ debian-12 2024-07-20 14:10:37Z builder-web.deb
SHA256:f9197a2f503cf8d673c3247892c16c0fd99e99c6b3a11aff3623b5f5331434e7
(13.5MB) - ☑ freebsd-14 2024-07-20 12:14:04Z builder-web.pkg
SHA256:334a161dfe9a9e284502177f507c8bcc58b78b0417611834db2ff4263852693f
(11.1MB) - ☑ freebsd-14 2024-07-15 12:09:19Z builder-web.pkg
SHA256:33bcc336600b19d5cb294adfc5e94eb4b7a54bd5e7cdfae6bdb0ccd3d88904ff
(11.1MB) - ☑ debian-12 2024-07-15 10:55:25Z builder-web.deb
SHA256:25cde2746d2403cbad2d3910358ddbc7f1344e2bf7272c21d2f32f281efa8431
(13.5MB) - ☑ debian-11 2024-07-15 10:55:18Z builder-web.deb
SHA256:f4ca75be5c43f92dfd178b777286584293abb039c97a890f69761ed3327573d9
(12.9MB) - ☑ debian-11 2024-07-02 14:10:30Z builder-web.deb
SHA256:91a8b9e64b1b54b242ae4184231b172bbfa2ae3764d9e0a4c5c1c98066daf7f0
(12.5MB) - ☑ debian-12 2024-07-02 14:10:19Z builder-web.deb
SHA256:4d502f1ad59736324bf7866791342e9cefb7f76d819470f470c0ffad4d1e9589
(13MB) - ☑ freebsd-14 2024-07-02 11:57:00Z builder-web.pkg
SHA256:7f2afc5600b95e6b621292ef1f8bd7a3e422bfc5bcd82e96932ecea86cbd7ea6
(10.8MB) - ☑ debian-11 2024-06-28 14:05:17Z builder-web.deb
SHA256:1ec36364980a720001c5be74bfc7baee94a08a804f7ac3893f8e2a26e55da3ca
(12.5MB) - ☑ debian-12 2024-06-28 14:04:54Z builder-web.deb
SHA256:3aac602c2ab6d337a116c3b3c41f2e891c81d51f34f5cf031a96511886ae72ad
(13MB) - ☑ freebsd-14 2024-06-28 11:53:11Z builder-web.pkg
SHA256:3e9cfee0a0593df672534976d3512b3c42c37f540aa5a08a3a3cb4788750be6a
(10.8MB) - ☑ debian-11 2024-06-26 14:02:05Z builder-web.deb
SHA256:7b51853aac8b314eb29514fd34c22e49d6c41e8644aa30dc8888a05afc2b51f7
(8.89MB)
Including failed builds here.