treewide: override TMPDIR for tests that use qemu

When running QEMU with snapshot=on set, QEMU creates a copy of the
provided file in $TMPDIR. If $TMPDIR is set to /tmp, it will always
be overridden to /var/tmp. This creates an issue for us, as the
bazel tests only wire up /tmp, with /var/tmp being unaccessible
because of permissions. Bazel provides $TEST_TMPDIR for this
usecase, which we resolve to an absolute path and then override
$TMPDIR.

Change-Id: I767159211d3b3db2aafd0f4fc17d6d6480974f16
Reviewed-on: https://review.monogon.dev/c/monogon/+/4422
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
4 files changed
tree: 10e88bf5cad3546392e76b0919a3d0e432f0769e
  1. .github/
  2. .vscode/
  3. build/
  4. cloud/
  5. go/
  6. metropolis/
  7. osbase/
  8. third_party/
  9. tools/
  10. version/
  11. .bazelignore
  12. .bazelproject
  13. .bazelrc
  14. .bazelrc.ci
  15. .bazelversion
  16. .envrc
  17. .git-ignore-revs
  18. .gitignore
  19. BUILD.bazel
  20. CODING_STANDARDS.md
  21. go.mod
  22. go.sum
  23. LICENSE
  24. MODULE.bazel
  25. MODULE.bazel.lock
  26. README.md
  27. SETUP.md
  28. shell.nix
README.md

Monogon Monorepo

This is the main repository containing the source code for the Monogon Platform.

This is pre-release software - take a look, and check back later! In the meantime, join us on Matrix (#monogon-os-community:matrix.org) or Discord.

Environment

Our build environment is self-contained and requires only minimal host dependencies:

  • A Linux machine or VM.
  • Bazelisk >= v1.15.0 (or a working Nix environment).
  • A reasonably recent kernel with user namespaces enabled.
  • Working KVM with access to /dev/kvm (if you want to run tests).

Our docs assume that Bazelisk is available as bazel on your PATH.

Refer to SETUP.md for detailed instructions.

Monogon OS

The source code lives in //metropolis (Metropolis is the codename of Monogon OS).

See the //metropolis/README.md for a developer quick start guide, or see the Monogon OS Handbook for user documentation.