Your Code Ran on the Free Box. That's Not an Environment Match.
Description and use
The fingerprint.sh script captures runtime facts from both local and free CI environments, enabling developers to diff and identify mismatches such as GLIBC version, architecture, locale, and timezone, thereby quickly resolving test failures.
Problem
Tests that pass locally fail on a CI free box due to environment differences such as GLIBC version, architecture, locale, and timezone.
Outcome
By capturing runtime facts and diffing them, developers can quickly isolate environment mismatches that cause CI failures, reducing debugging time.
Workflow
- Run fingerprint.sh on local machine and save output to laptop.txt
- Run fingerprint.sh on the free runner via ssh and save to remote.txt
- Diff laptop.txt and remote.txt to identify differences
- Interpret diff using the decision table to determine cause and next step
- Apply corrective action such as rebuilding wheels or pinning versions
- Re-run tests to confirm resolution
Evidence
Your tests pass on your laptop. The same commit then dies on a plain Ubuntu box with error while loading shared libraries: GLIBC_2.34 not found.
Run the same workload three times. If the spread is huge, you have contention.
This prints facts, one per line. No dependencies beyond bash and coreutils.
- Record date: 2026-10-20T11:41:38.985Z