diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-08-05 14:24:31 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2025-08-05 14:24:31 +0200 |
| commit | d29d5e06e936311d52e593b887b07712fd91d301 (patch) | |
| tree | 5b11a3d758932198d6ca15d04e576b45e905d5d7 | |
| parent | 232f7eee33f1b2def4c534497a68034acb6361c1 (diff) | |
| parent | 2482c3cbaa81ca127f6d4ecf61ad1279733a0e5e (diff) | |
| download | mullvadvpn-d29d5e06e936311d52e593b887b07712fd91d301.tar.xz mullvadvpn-d29d5e06e936311d52e593b887b07712fd91d301.zip | |
Merge branch 'add-test-macos-tahoe'
| -rw-r--r-- | .github/workflows/desktop-e2e.yml | 8 | ||||
| -rw-r--r-- | test/test-manager/src/vm/provision.rs | 28 |
2 files changed, 24 insertions, 12 deletions
diff --git a/.github/workflows/desktop-e2e.yml b/.github/workflows/desktop-e2e.yml index 3c5cc0d0b3..20176026c8 100644 --- a/.github/workflows/desktop-e2e.yml +++ b/.github/workflows/desktop-e2e.yml @@ -17,11 +17,11 @@ on: Available images:\n `debian11 debian12 ubuntu2004 ubuntu2204 ubuntu2404 ubuntu2410 ubuntu2504 \ fedora39 fedora40 fedora41 fedora42 windows10 windows11 \ - macos12 macos13 macos14 macos15`.\n + macos12 macos13 macos14 macos15 macos26`.\n Default images:\n `debian12 ubuntu2004 ubuntu2204 ubuntu2404 ubuntu2410 ubuntu2504 \ fedora39 fedora40 fedora41 fedora42 windows10 windows11 \ - macos13 macos14 macos15`." + macos13 macos14 macos15 macos26`." default: '' required: false type: string @@ -72,8 +72,8 @@ jobs: - name: Generate matrix for macOS builds shell: bash run: | - all='["macos12","macos13","macos14","macos15"]' - default='["macos13","macos14","macos15"]' + all='["macos12","macos13","macos14","macos15","macos26"]' + default='["macos13","macos14","macos15","macos26"]' oses="${{ github.event.inputs.oses }}" if [[ -z "$oses" || "$oses" == "null" ]]; then selected="$default" diff --git a/test/test-manager/src/vm/provision.rs b/test/test-manager/src/vm/provision.rs index ef1347ba62..818393cd33 100644 --- a/test/test-manager/src/vm/provision.rs +++ b/test/test-manager/src/vm/provision.rs @@ -9,6 +9,8 @@ use std::{ io::{self, Read}, net::{IpAddr, SocketAddr, TcpStream}, path::{Path, PathBuf}, + time::Duration, + time::Instant, }; use test_rpc::UNPRIVILEGED_USER; @@ -63,14 +65,24 @@ async fn provision_ssh( let local_app_manifest = local_app_manifest.to_owned(); let remote_dir = tokio::task::spawn_blocking(move || { - blocking_ssh( - user, - password, - guest_ip, - os_type, - &local_runner_dir, - local_app_manifest, - ) + const SSH_TIMEOUT: Duration = Duration::from_secs(120); + let started = Instant::now(); + loop { + let last_result = blocking_ssh( + user.clone(), + password.clone(), + guest_ip, + os_type, + &local_runner_dir, + local_app_manifest.clone(), + ); + if last_result.is_err() && started.elapsed() < SSH_TIMEOUT { + log::warn!("Failed to provision over SSH, retrying..."); + std::thread::sleep(Duration::from_secs(1)); + continue; + } + break last_result; + } }) .await .context("Failed to join SSH task")??; |
