From c80f275ae101c4ea367bd422c19bdf54e00675d3 Mon Sep 17 00:00:00 2001 From: Alex Lowe Date: Fri, 10 Jul 2026 20:57:14 -0400 Subject: [PATCH 1/3] Speed up spread suite package setup Avoid redundant apt index refreshes in top-level spread prepare by relying on tests.pkgs install and installing snapd+unzip in one invocation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- spread.yaml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/spread.yaml b/spread.yaml index 0bc27741a..dc83ac276 100644 --- a/spread.yaml +++ b/spread.yaml @@ -137,16 +137,10 @@ prepare: | sed -i -E '/^Components:/ { /(^| )universe( |$)/! s/$/ universe/ }' "$ubuntu_sources" fi fi - - tempfile="$(mktemp)" - if ! apt-get update > "$tempfile" 2>&1; then - cat "$tempfile" - exit 1 - fi fi - tests.pkgs install snapd - tests.pkgs install unzip + # tests.pkgs install runs apt-get update, so install both packages in one call. + tests.pkgs install snapd unzip snap wait system seed.loaded From d5a6034911b514ca0c481cd90dbbc57ebbba8395 Mon Sep 17 00:00:00 2001 From: Alex Lowe Date: Fri, 10 Jul 2026 21:06:22 -0400 Subject: [PATCH 2/3] Remove redundant unzip setup in spread tasks Drop per-task tests.pkgs unzip installs now that the suite-level spread prepare installs unzip once for all tasks. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- tests/spread/dependencies/strict-dependencies/task.yaml | 2 -- tests/spread/hooks/configure/task.yaml | 1 - tests/spread/hooks/remove/task.yaml | 1 - tests/spread/smoketests/different-dependencies/task.yaml | 1 - tests/spread/smoketests/metafiles-bad-yaml-unenforced/task.yaml | 1 - tests/spread/smoketests/metafiles-multiple-yaml/task.yaml | 1 - .../smoketests/metafiles-unified-charmcraft-yaml/task.yaml | 1 - tests/spread/smoketests/parallel-build/task.yaml | 1 - tests/spread/smoketests/pinned-dependencies/task.yaml | 1 - tests/spread/smoketests/remote-build/task.yaml | 1 - 10 files changed, 11 deletions(-) diff --git a/tests/spread/dependencies/strict-dependencies/task.yaml b/tests/spread/dependencies/strict-dependencies/task.yaml index d488a525b..a9fe7f393 100644 --- a/tests/spread/dependencies/strict-dependencies/task.yaml +++ b/tests/spread/dependencies/strict-dependencies/task.yaml @@ -1,8 +1,6 @@ summary: ensure that a charm with strict dependencies can build. prepare: | - tests.pkgs install unzip - restore: | pushd charm charmcraft clean diff --git a/tests/spread/hooks/configure/task.yaml b/tests/spread/hooks/configure/task.yaml index 62451137f..506e0eb54 100644 --- a/tests/spread/hooks/configure/task.yaml +++ b/tests/spread/hooks/configure/task.yaml @@ -7,7 +7,6 @@ include: - tests/ prepare: | - tests.pkgs install unzip charmcraft init --project-dir=charm restore: | diff --git a/tests/spread/hooks/remove/task.yaml b/tests/spread/hooks/remove/task.yaml index cdbaef6bc..fdf33f72c 100644 --- a/tests/spread/hooks/remove/task.yaml +++ b/tests/spread/hooks/remove/task.yaml @@ -7,7 +7,6 @@ include: - tests/ prepare: | - tests.pkgs install unzip charmcraft init --project-dir=charm restore: | diff --git a/tests/spread/smoketests/different-dependencies/task.yaml b/tests/spread/smoketests/different-dependencies/task.yaml index 26c518c7d..47d6e6173 100644 --- a/tests/spread/smoketests/different-dependencies/task.yaml +++ b/tests/spread/smoketests/different-dependencies/task.yaml @@ -4,7 +4,6 @@ include: - tests/ prepare: | - tests.pkgs install unzip snap install --devmode --channel=v4/stable yq charmcraft init --project-dir=charm cd charm diff --git a/tests/spread/smoketests/metafiles-bad-yaml-unenforced/task.yaml b/tests/spread/smoketests/metafiles-bad-yaml-unenforced/task.yaml index 600075872..053a35e7d 100644 --- a/tests/spread/smoketests/metafiles-bad-yaml-unenforced/task.yaml +++ b/tests/spread/smoketests/metafiles-bad-yaml-unenforced/task.yaml @@ -6,7 +6,6 @@ include: - tests/ prepare: | - tests.pkgs install unzip charmcraft init --project-dir=charm rm -f charm/metadata.yaml rm -f charm/config.yaml diff --git a/tests/spread/smoketests/metafiles-multiple-yaml/task.yaml b/tests/spread/smoketests/metafiles-multiple-yaml/task.yaml index 242ef316f..29c5bcc88 100644 --- a/tests/spread/smoketests/metafiles-multiple-yaml/task.yaml +++ b/tests/spread/smoketests/metafiles-multiple-yaml/task.yaml @@ -6,7 +6,6 @@ include: - tests/ prepare: | - tests.pkgs install unzip charmcraft init --project-dir=charm rm -f charm/metadata.yaml rm -f charm/config.yaml diff --git a/tests/spread/smoketests/metafiles-unified-charmcraft-yaml/task.yaml b/tests/spread/smoketests/metafiles-unified-charmcraft-yaml/task.yaml index 43bb9fec1..e1e54de31 100644 --- a/tests/spread/smoketests/metafiles-unified-charmcraft-yaml/task.yaml +++ b/tests/spread/smoketests/metafiles-unified-charmcraft-yaml/task.yaml @@ -4,7 +4,6 @@ include: - tests/ prepare: | - tests.pkgs install unzip charmcraft init --project-dir=charm rm -f charm/metadata.yaml rm -f charm/config.yaml diff --git a/tests/spread/smoketests/parallel-build/task.yaml b/tests/spread/smoketests/parallel-build/task.yaml index 8eb2e2078..9ceb39c5e 100644 --- a/tests/spread/smoketests/parallel-build/task.yaml +++ b/tests/spread/smoketests/parallel-build/task.yaml @@ -7,7 +7,6 @@ include: - tests/ prepare: | - tests.pkgs install unzip charmcraft init --project-dir=charm1 charmcraft init --project-dir=charm2 charmcraft init --project-dir=charm3 diff --git a/tests/spread/smoketests/pinned-dependencies/task.yaml b/tests/spread/smoketests/pinned-dependencies/task.yaml index 8098bdc5a..d0374d153 100644 --- a/tests/spread/smoketests/pinned-dependencies/task.yaml +++ b/tests/spread/smoketests/pinned-dependencies/task.yaml @@ -4,7 +4,6 @@ include: - tests/ prepare: | - tests.pkgs install unzip restore: | charmcraft clean diff --git a/tests/spread/smoketests/remote-build/task.yaml b/tests/spread/smoketests/remote-build/task.yaml index 6ebc098c1..80a4527ed 100644 --- a/tests/spread/smoketests/remote-build/task.yaml +++ b/tests/spread/smoketests/remote-build/task.yaml @@ -13,7 +13,6 @@ include: - tests/ prepare: | - tests.pkgs install unzip charmcraft init --project-dir=charm # Workaround for https://github.com/canonical/craft-application/issues/248 From 77960e594091c824ca5edd98bd956a9beda5272d Mon Sep 17 00:00:00 2001 From: Alex Lowe Date: Fri, 10 Jul 2026 21:19:46 -0400 Subject: [PATCH 3/3] Apply suggestion from @lengau Signed-off-by: Alex Lowe --- tests/spread/dependencies/strict-dependencies/task.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/spread/dependencies/strict-dependencies/task.yaml b/tests/spread/dependencies/strict-dependencies/task.yaml index a9fe7f393..ffbed3227 100644 --- a/tests/spread/dependencies/strict-dependencies/task.yaml +++ b/tests/spread/dependencies/strict-dependencies/task.yaml @@ -1,6 +1,5 @@ summary: ensure that a charm with strict dependencies can build. -prepare: | restore: | pushd charm charmcraft clean