Job builder-web on ubuntu-18.04
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- ☑ ubuntu-18.04 2022-08-17 09:51:25Z builder-web.deb
SHA256:5014decd136681440009a894adda99bd1b5ddfa0401f3976ccd797b83f051398
(12.1MB) - ☑ ubuntu-18.04 2022-08-15 10:13:39Z builder-web.deb
SHA256:e986e20c34961a323608475531cbe95b0359141a5e073935506be8d750cfc275
(12.1MB) - ☑ ubuntu-18.04 2022-08-12 10:00:41Z builder-web.deb
SHA256:62f6b5f88a2bd81fd5cd7dc116aa65938e326868732e9186ab5235052ab2b9e9
(12.1MB) - ☑ ubuntu-18.04 2022-08-09 10:13:29Z builder-web.deb
SHA256:31110682854d4948bd7e744aa6eb708d0c19a7d79d4e943e04bb1f22cefed5dd
(12.1MB) - ☑ ubuntu-18.04 2022-08-04 10:48:20Z builder-web.deb
SHA256:98f129a9170eb7c17e8f096e4c3bd6a133324a970b5165cbd7cf430b4d7eca2c
(12.1MB) - ☑ ubuntu-18.04 2022-07-27 11:47:18Z builder-web.deb
SHA256:ba949d21d936f60fa7edb88ef45ab9e1d3157a8b8f61af0f202db1d7144cf919
(12.1MB) - ☑ ubuntu-18.04 2022-07-25 11:47:17Z builder-web.deb
SHA256:8e84b42952ae1fae0f6f6b9e50ce64904c24e7e363dac141a543f0507b348561
(12.1MB) - ☑ ubuntu-18.04 2022-07-20 11:47:13Z builder-web.deb
SHA256:5d4706ac4ee18fcc8b74cbc740588c802e31622cca9d8a2462f4b221f5b30a8c
(12.1MB)
Including failed builds here.