about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2021-06-18T19·08+0200
committerVincent Ambo <mail@tazj.in>2021-06-20T16·33+0200
commit3efbbfcd4e22811dd549c6ed46374736308b0b82 (patch)
tree4aabc0e4714c0e82cc961a8e8a16fe267b12a667
parent768f3986a9399c82fc61ddcd4865d10f3bb93351 (diff)
feat(ci): don't mount /var/cache/nixery from tmpfs into docker container
With https://github.com/google/nixery/pull/127, nixery will use extended
attributes to store metadata (when using local storage).

Right now, our integration test mounts a tmpfs to /var/cache/nixery.
However, *user* xattrs aren't supported with tmpfs [1], so setting
xattrs would fail.

To workaround this, use a folder in the current working directory and
hope it's backed by something supporting user xattrs (which is the case
for GitHub Actions).

[1]: https://man7.org/linux/man-pages/man5/tmpfs.5.html#NOTES
-rw-r--r--tools/nixery/.gitignore3
-rwxr-xr-xtools/nixery/scripts/integration-test.sh12
2 files changed, 13 insertions, 2 deletions
diff --git a/tools/nixery/.gitignore b/tools/nixery/.gitignore
index 4203fee19569..578eea392301 100644
--- a/tools/nixery/.gitignore
+++ b/tools/nixery/.gitignore
@@ -7,3 +7,6 @@ debug/
 *.pem
 *.p12
 *.json
+
+# Created by the integration test
+var-cache-nixery
diff --git a/tools/nixery/scripts/integration-test.sh b/tools/nixery/scripts/integration-test.sh
index 9595f37d9417..9d06e96ba29c 100755
--- a/tools/nixery/scripts/integration-test.sh
+++ b/tools/nixery/scripts/integration-test.sh
@@ -10,9 +10,17 @@ echo "Loaded Nixery image as ${IMG}"
 
 # Run the built nixery docker image in the background, but keep printing its
 # output as it occurs.
-docker run --rm -p 8080:8080 --name nixery \
+# We can't just mount a tmpfs to /var/cache/nixery, as tmpfs doesn't support
+# user xattrs.
+# So create a temporary directory in the current working directory, and hope
+# it's backed by something supporting user xattrs.
+# We'll notice it isn't if nixery starts complaining about not able to set
+# xattrs anyway.
+if [ -d var-cache-nixery ]; then rm -Rf var-cache-nixery; fi
+mkdir var-cache-nixery
+docker run --privileged --rm -p 8080:8080 --name nixery \
   -e PORT=8080 \
-  --mount type=tmpfs,destination=/var/cache/nixery \
+  --mount "type=bind,source=${PWD}/var-cache-nixery,target=/var/cache/nixery" \
   -e NIXERY_CHANNEL=nixos-unstable \
   -e NIXERY_STORAGE_BACKEND=filesystem \
   -e STORAGE_PATH=/var/cache/nixery \