Dockerfile and test scripts that let you build and test the binary in a clean Debian environment — no local Go installation required.
How it works
The Docker setup uses a two-stage build:- Builder stage — compiles
igofrom source usinggolang:1.26-bookworm - Runtime stage — runs
tester.shas an unprivilegedtesteruser ondebian:bookworm-slim
git, curl, bash, sudo, tree, bc, and bump, then runs the full tester.sh script against the compiled binary.
Build and run
test.sh helper script wraps these commands with useful options:
Dockerfile
Dockerfile
What tester.sh tests
Thetesting/tester.sh script runs a sequence of integration tests against the compiled igo binary:
igo -v— verify version outputigo -e— verify environment displayigo -l— list installed versions (initially empty)igo -i <version>— install one or more Go versionsigo -s <version>— switch between versionsigo -u <version>— uninstall a versionigo -f <version>— fix a version installation
test-in-timeout.sh. Results are captured to testing/results/ for archival.
The GitHub Actions workflow (
test-igo.yml) runs these Docker tests automatically on protected branches (master, release, develop).