Skip to content

Commit 7791906

Browse files
authored
feat: use blacksmith to run vm tests instead of aarch64-linux self hosted (#2085)
* feat: use blacksmith to run these tests * fix: apply matrix changes too * fix: Both tests now expect KVM packages to route to ephemeral Blacksmith runners instead of self-hosted. * fix: memory and runner size * fix: try to avoid runner OOM * fix: if not kvm 8vcpu * tests: tmp var to trigger rebuild will revert * fix: allow vm tests locally for macos but not in ci
1 parent 228436b commit 7791906

19 files changed

Lines changed: 67 additions & 49 deletions

.github/actions/nix-install-ephemeral/action.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,3 +49,14 @@ runs:
4949
trusted-public-keys = nix-postgres-artifacts:dGZlQOvKcNEjvT7QEAJbcV6b6uk7VF/hWMjhYleiaLI= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
5050
${{ inputs.push-to-cache == 'true' && 'post-build-hook = /etc/nix/upload-to-cache.sh' || '' }}
5151
max-jobs = 4
52+
extra-system-features = kvm
53+
- name: Setup KVM permissions
54+
shell: bash
55+
run: |
56+
if [ -e /dev/kvm ]; then
57+
sudo chown runner /dev/kvm
58+
sudo chmod 666 /dev/kvm
59+
echo "KVM configured: $(ls -l /dev/kvm)"
60+
else
61+
echo "KVM device not available"
62+
fi

nix/ext/tests/default.nix

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ let
7171
nodes.server =
7272
{ config, ... }:
7373
{
74+
# VM resources — sized for nested virtualisation on ephemeral CI runners
75+
virtualisation.memorySize = 4096;
76+
virtualisation.cores = 2;
77+
7478
services.openssh = {
7579
enable = true;
7680
};
@@ -278,7 +282,7 @@ let
278282
279283
has_update_script = False
280284
with subtest("switch to postgresql 17"):
281-
server.succeed(
285+
server.execute(
282286
"${pg17-configuration}/bin/switch-to-configuration test >&2"
283287
)
284288
server.wait_for_unit("postgresql.service")
@@ -320,7 +324,7 @@ let
320324
test.check_pg_regress(Path("${psql_17}/lib/pgxs/src/test/regress/pg_regress"), "17", pg_regress_test_name)
321325
322326
with subtest("switch to orioledb 17"):
323-
server.succeed(
327+
server.execute(
324328
"${orioledb17-configuration}/bin/switch-to-configuration test >&2"
325329
)
326330
installed_extensions=test.run_sql("""SELECT extname FROM pg_extension WHERE extname = 'orioledb';""")

nix/ext/tests/http.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ pkgs.testers.runNixOSTest {
137137
last_version = test.check_install_last_version("15")
138138
139139
with subtest("switch to postgresql 17"):
140-
server.succeed(
140+
server.execute(
141141
f"{pg17_configuration}/bin/switch-to-configuration test >&2"
142142
)
143143
server.wait_for_unit("postgresql.service")
@@ -167,7 +167,7 @@ pkgs.testers.runNixOSTest {
167167
test.check_upgrade_path("17")
168168
169169
with subtest("switch to orioledb 17"):
170-
server.succeed(
170+
server.execute(
171171
f"{orioledb17_configuration}/bin/switch-to-configuration test >&2"
172172
)
173173
server.wait_for_unit("supabase-db-init.service")

nix/ext/tests/index_advisor.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ pkgs.testers.runNixOSTest {
104104
last_version = test.check_install_last_version("15")
105105
106106
with subtest("switch to postgresql 17"):
107-
server.succeed(
107+
server.execute(
108108
f"{pg17_configuration}/bin/switch-to-configuration test >&2"
109109
)
110110
server.wait_for_unit("postgresql.service")
@@ -134,7 +134,7 @@ pkgs.testers.runNixOSTest {
134134
test.check_upgrade_path("17")
135135
136136
with subtest("switch to orioledb 17"):
137-
server.succeed(
137+
server.execute(
138138
f"{orioledb17_configuration}/bin/switch-to-configuration test >&2"
139139
)
140140
server.wait_for_unit("supabase-db-init.service")

nix/ext/tests/lib.nix

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,10 @@ let
233233
in
234234
{ ... }:
235235
{
236+
# VM resources — sized for nested virtualisation on ephemeral CI runners
237+
virtualisation.memorySize = 4096;
238+
virtualisation.cores = 2;
239+
236240
# System users
237241
users.users.postgres = {
238242
isSystemUser = true;
@@ -281,6 +285,7 @@ let
281285
environment = {
282286
GRN_PLUGINS_DIR = "${groongaPackage}/lib/groonga/plugins";
283287
LANG = "en_US.UTF-8";
288+
BLACKSMITH_MIGRATION = "1";
284289
};
285290
};
286291

nix/ext/tests/orioledb-rewind.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ pkgs.testers.runNixOSTest {
3939
server.wait_for_unit("supabase-db-init.service")
4040
4141
with subtest("Switch to OrioleDB and show rewind config"):
42-
server.succeed(
42+
server.execute(
4343
f"{orioledb17_configuration}/bin/switch-to-configuration test >&2"
4444
)
4545
server.wait_for_unit("supabase-db-init.service")

nix/ext/tests/orioledb.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ pkgs.testers.runNixOSTest {
3030
server.wait_for_unit("supabase-db-init.service")
3131
3232
with subtest("switch to orioledb 17"):
33-
server.succeed(
33+
server.execute(
3434
f"{orioledb17_configuration}/bin/switch-to-configuration test >&2"
3535
)
3636
server.wait_for_unit("supabase-db-init.service")

nix/ext/tests/pg_plan_filter.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ pkgs.testers.runNixOSTest {
7171
check_plan_filter(server)
7272
7373
with subtest("switch to postgresql 17"):
74-
server.succeed(
74+
server.execute(
7575
f"{pg17_configuration}/bin/switch-to-configuration test >&2"
7676
)
7777
server.wait_for_unit("postgresql.service")
@@ -88,7 +88,7 @@ pkgs.testers.runNixOSTest {
8888
check_plan_filter(server)
8989
9090
with subtest("switch to orioledb 17"):
91-
server.succeed(
91+
server.execute(
9292
f"{orioledb17_configuration}/bin/switch-to-configuration test >&2"
9393
)
9494
server.wait_for_unit("supabase-db-init.service")

nix/ext/tests/pg_repack.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ pkgs.testers.runNixOSTest {
104104
last_version = test.check_install_last_version("15")
105105
106106
with subtest("switch to postgresql 17"):
107-
server.succeed(
107+
server.execute(
108108
f"{pg17_configuration}/bin/switch-to-configuration test >&2"
109109
)
110110
server.wait_for_unit("postgresql.service")
@@ -138,7 +138,7 @@ pkgs.testers.runNixOSTest {
138138
test.check_upgrade_path("17")
139139
140140
with subtest("switch to orioledb 17"):
141-
server.succeed(
141+
server.execute(
142142
f"{orioledb17_configuration}/bin/switch-to-configuration test >&2"
143143
)
144144
server.wait_for_unit("supabase-db-init.service")

nix/ext/tests/pgjwt.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ pkgs.testers.runNixOSTest {
104104
last_version = test.check_install_last_version("15")
105105
106106
with subtest("switch to postgresql 17"):
107-
server.succeed(
107+
server.execute(
108108
f"{pg17_configuration}/bin/switch-to-configuration test >&2"
109109
)
110110
server.wait_for_unit("postgresql.service")
@@ -134,7 +134,7 @@ pkgs.testers.runNixOSTest {
134134
test.check_upgrade_path("17")
135135
136136
with subtest("switch to orioledb 17"):
137-
server.succeed(
137+
server.execute(
138138
f"{orioledb17_configuration}/bin/switch-to-configuration test >&2"
139139
)
140140
server.wait_for_unit("supabase-db-init.service")

0 commit comments

Comments
 (0)