samth / docker-racket-build

MIT License
5 stars 2 forks source link

Docker-ized build and test of Racket releases Build Status

This repository provides Dockerfiles and docker-compose configuration for installing and testing Racket versions, including official releases and snapshot versions. The goal of this project is to reduce the manual effort required to test and release new Racket versions, see the Release Overview wiki page for details on that process.

Quickstart docker-compose example commands

By default, all commands use the latest Racket snapshot version. See the .env file and the environments directory for more information.

# Build a Racket installation
docker-compose build racket-x86-minimal

# Run a REPL in a built installation
docker-compose run racket-x86-minimal

# Build non-GUI release tests for an installation
docker-compose build racket-x86-minimal-test

# Run previously-built non-GUI release tests
docker-compose run racket-x86-minimal-test

# Start the GUI browser debugging services in the background
docker-compose up -d nginx

# Build and run GUI release tests
docker-compose build racket-x86-minimal-test-gui
docker-compose run racket-x86-minimal-test-gui
# Now open localhost in your browser (if debugging services are up)

# Run a different command in an already built image
docker-compose run racket-x86-minimal-test raco test -p my-collection

Docker configuration overview

The Docker Compose configuration in docker-compose.yml defines a few services for each installer variant:

Several services are defined for use by the GUI tests, including:

Installer variants

Not all installer variants are installed and tested. The following is a complete list of installer names used in the racket-{installer} services:

Name Meaning
i386 Linux 32-bit installer for main-distribution Racket
i386-minimal Linux 32-bit installer for minimal Racket
x86 Linux 64-bit installer for main-distribution Racket
x86-minimal Linux 64-bit installer for minimal Racket
x86-natipkg Linux 64-bit installer for main-distribution Racket with bundled OS libraries
x86-natipkg-minimal Linux 64-bit installer for minimal Racket with bundled OS libraries

All installers are installed in-place, not Unix-style. The following installation variants are yet to be tested:

Release tests included so far

This list mirrors the "Testing" section of the Release Checklist, with all items contained here automated and run in the Dockerized release tests:

See the github issues for more info on the status of automated release tests not yet included in this list.