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
This commit is contained in:
parent
768f3986a9
commit
3efbbfcd4e
2 changed files with 13 additions and 2 deletions
3
tools/nixery/.gitignore
vendored
3
tools/nixery/.gitignore
vendored
|
@ -7,3 +7,6 @@ debug/
|
|||
*.pem
|
||||
*.p12
|
||||
*.json
|
||||
|
||||
# Created by the integration test
|
||||
var-cache-nixery
|
||||
|
|
|
@ -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 \
|
||||
|
|
Loading…
Reference in a new issue