diff options
author | Lars Wirzenius <liw@liw.fi> | 2023-07-02 16:16:00 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2023-07-02 16:16:00 +0000 |
commit | 22150a8ad50f53b5818bc3656d477ae5f95f3032 (patch) | |
tree | ebfc263c9abb777f29381868f65de9985f5b8d0a | |
parent | 399744c38c2e1d4bcf7e2c9c25fa577f711af5a5 (diff) | |
parent | ccda137a15d74e14c393475f73fdb908ab4a0d12 (diff) | |
download | ambient-ci-22150a8ad50f53b5818bc3656d477ae5f95f3032.tar.gz |
Merge branch 'liw/cache-deps' into 'main'
feat: actually support cache and dependencies devices
See merge request larswirzenius/ambient-ci!19
-rw-r--r-- | ambient-build.service | 2 | ||||
-rwxr-xr-x | ambient-run | 24 | ||||
-rwxr-xr-x | test-project/.ambient-script | 2 |
3 files changed, 27 insertions, 1 deletions
diff --git a/ambient-build.service b/ambient-build.service index b62a970..b739779 100644 --- a/ambient-build.service +++ b/ambient-build.service @@ -6,5 +6,5 @@ WantedBy=multi-user.target [Service] Type=oneshot -ExecStart=/bin/ambient-run-script -t /dev/ttyS0 -s /dev/vdb -a /dev/vdc +ExecStart=/bin/ambient-run-script -t /dev/ttyS0 -s /dev/vdb -a /dev/vdc -c /dev/vdd -d /dev/vde ExecStart=/sbin/poweroff diff --git a/ambient-run b/ambient-run index f9b03e1..a691b49 100755 --- a/ambient-run +++ b/ambient-run @@ -20,6 +20,8 @@ def parse_args(): p.add_argument("--image", required=True) p.add_argument("--log", required=True) p.add_argument("--artifact") + p.add_argument("--cache") + p.add_argument("--dependencies") p.add_argument("source_tree") return p.parse_args() @@ -92,6 +94,24 @@ def main(): ["qemu-img", "create", "-q", "-f", "raw", output_drive, "1G"], check=True ) + if args.cache is None: + cache_drive = os.path.join(tmp, "cache.tar") + else: + cache_drive = args.cache + logging.info(f"using {cache_drive} as cache drive") + if not os.path.exists(cache_drive): + logging.info(f"creating empty tar archive as {cache_drive}") + tar = tarfile.open(name=cache_drive, mode="w:") + tar.close() + + if args.dependencies is None: + deps_drive = os.path.join(tmp, "deps.tar") + tar = tarfile.open(name=deps_drive, mode="w:") + tar.close() + else: + deps.drive = args.dependencies + logging.info(f"using {deps_drive} as cache drive") + logging.info("run build in VM") argv = [ "kvm", @@ -107,6 +127,10 @@ def main(): f"format=raw,if=virtio,file={src_tar},readonly=on", "-drive", f"format=raw,if=virtio,file={output_drive}", + "-drive", + f"format=raw,if=virtio,file={cache_drive}", + "-drive", + f"format=raw,if=virtio,file={deps_drive}", "-nodefaults", "-display", "none", diff --git a/test-project/.ambient-script b/test-project/.ambient-script index 5819e76..d80fa2a 100755 --- a/test-project/.ambient-script +++ b/test-project/.ambient-script @@ -5,6 +5,8 @@ set -euo pipefail echo "hello from test-project's ambient script: $*" cat /proc/cmdline +ls -l /dev/vd? +ls -l /workspace output="$1" |