From b9f10c9c868a662f560da9b4b713a900a4fa3df9 Mon Sep 17 00:00:00 2001 From: Greg Hellings Date: Mon, 15 Apr 2024 03:53:58 +0000 Subject: [PATCH] Make more intelligent use of the cache Bust cache on the dynamic files Use the cached builds for both virtualbox and Hyper-V Hopefully improve loop downloading files to cache --- .gitlab-ci.yml | 8 +++++++- distros/centos-stream/8/amd64.pkrvars.hcl.sh | 2 ++ distros/centos-stream/9/amd64.pkrvars.hcl.sh | 4 +++- distros/debian/11/amd64.pkrvars.hcl | 4 ++-- distros/fedora/rawhide/amd64.pkrvars.hcl.sh | 1 + distros/nixos/23.05/amd64.pkrvars.hcl.sh | 1 + distros/nixos/23.11/amd64.pkrvars.hcl.sh | 1 + sources/hyperv-iso.pkr.hcl | 2 +- sources/virtualbox-iso.pkr.hcl | 2 +- 9 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index acab16b..56a4434 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,6 +10,10 @@ variables: generate: stage: generate + cache: + - key: isofiles + paths: + - cache/*.iso artifacts: paths: - distros/**/*.pkrvars.hcl @@ -78,7 +82,9 @@ downloads: for vars in $(find distros/ -name '*.pkrvars.hcl'); do file=$(echo var.iso.url | packer console -var-file=${vars} -config-type=hcl2 sources/) base="$(basename "${file}")" - if [ ! -e "cache/${base}" ]; then + if [ -e "cache/${base}" ]; then + echo "Cached file already exists" + else files+=("-O" "${file}") fi done diff --git a/distros/centos-stream/8/amd64.pkrvars.hcl.sh b/distros/centos-stream/8/amd64.pkrvars.hcl.sh index 5b617f1..66bf967 100755 --- a/distros/centos-stream/8/amd64.pkrvars.hcl.sh +++ b/distros/centos-stream/8/amd64.pkrvars.hcl.sh @@ -27,3 +27,5 @@ boot_command = [ cd_files = [ "distros/centos-stream/8/disc/*" ] vbox_os_type = "RedHat8_64" HERPDERP + +rm -f cache/CentOS-Stream-8-x86_64-latest-boot.iso diff --git a/distros/centos-stream/9/amd64.pkrvars.hcl.sh b/distros/centos-stream/9/amd64.pkrvars.hcl.sh index 565a37e..5efdb05 100755 --- a/distros/centos-stream/9/amd64.pkrvars.hcl.sh +++ b/distros/centos-stream/9/amd64.pkrvars.hcl.sh @@ -28,4 +28,6 @@ boot_command = [ ] cd_files = [ "distros/centos-stream/9/disc/*" ] vbox_os_type = "RedHat9_64" -HERPDERP \ No newline at end of file +HERPDERP + +rm -f cache/CentOS-Stream-9-latest-x86_64-boot.iso \ No newline at end of file diff --git a/distros/debian/11/amd64.pkrvars.hcl b/distros/debian/11/amd64.pkrvars.hcl index 6a63922..795b6cb 100644 --- a/distros/debian/11/amd64.pkrvars.hcl +++ b/distros/debian/11/amd64.pkrvars.hcl @@ -1,8 +1,8 @@ distro = "debian" version = "11" iso = { - url = "http://cdimage.debian.org/cdimage/archive/11.8.0/amd64/iso-cd/debian-11.8.0-amd64-netinst.iso" - checksum = "d7a74813a734083df30c8d35784926deaa36bc41e5c0766388e9f591ab056b72" + url = "https://cdimage.debian.org/cdimage/archive/11.9.0/amd64/iso-cd/debian-11.9.0-amd64-netinst.iso" + checksum = "01c540225250d42cda3809d7130d0c27e934c8aca260d01a86d33dee19623b0f" } boot_command = [ "e", diff --git a/distros/fedora/rawhide/amd64.pkrvars.hcl.sh b/distros/fedora/rawhide/amd64.pkrvars.hcl.sh index 874b969..dad3bd7 100755 --- a/distros/fedora/rawhide/amd64.pkrvars.hcl.sh +++ b/distros/fedora/rawhide/amd64.pkrvars.hcl.sh @@ -44,3 +44,4 @@ vbox_os_type = "Fedora_64" EOF rm -r "${tmp}" +rm -f "cache/${iso_name}" \ No newline at end of file diff --git a/distros/nixos/23.05/amd64.pkrvars.hcl.sh b/distros/nixos/23.05/amd64.pkrvars.hcl.sh index 70f42c6..e46e09f 100755 --- a/distros/nixos/23.05/amd64.pkrvars.hcl.sh +++ b/distros/nixos/23.05/amd64.pkrvars.hcl.sh @@ -38,3 +38,4 @@ boot_wait = "60s" EOF rm -r "${tmp}" +rm -f "cache/latest-nixos-minima-x86_64-linux.iso" \ No newline at end of file diff --git a/distros/nixos/23.11/amd64.pkrvars.hcl.sh b/distros/nixos/23.11/amd64.pkrvars.hcl.sh index ab21028..54e0d8f 100755 --- a/distros/nixos/23.11/amd64.pkrvars.hcl.sh +++ b/distros/nixos/23.11/amd64.pkrvars.hcl.sh @@ -38,3 +38,4 @@ boot_wait = "60s" EOF rm -r "${tmp}" +rm -f "cache/latest-nixos-minimal-x86_64-linux.iso" diff --git a/sources/hyperv-iso.pkr.hcl b/sources/hyperv-iso.pkr.hcl index cd06012..614245f 100644 --- a/sources/hyperv-iso.pkr.hcl +++ b/sources/hyperv-iso.pkr.hcl @@ -1,5 +1,5 @@ source "hyperv-iso" "amd64" { - iso_url = var.iso.url + iso_urls = [ "cache/${basename(var.iso.url)}", var.iso.url] iso_target_path = "cache/${basename(var.iso.url)}" iso_checksum = var.iso.checksum output_directory = "output/hyperv/${local.name}" diff --git a/sources/virtualbox-iso.pkr.hcl b/sources/virtualbox-iso.pkr.hcl index 5848ff8..452e97a 100644 --- a/sources/virtualbox-iso.pkr.hcl +++ b/sources/virtualbox-iso.pkr.hcl @@ -1,5 +1,5 @@ source "virtualbox-iso" "amd64" { - iso_url = var.iso.url + iso_urls = [ "cache/${basename(var.iso.url)}", var.iso.url] iso_target_path = "cache/${basename(var.iso.url)}" iso_checksum = var.iso.checksum output_directory = "output/virtualbox/${local.name}"