diff --git a/.github/workflows/per-pr.yml b/.github/workflows/per-pr.yml index d351baddc..8d05f6ff7 100644 --- a/.github/workflows/per-pr.yml +++ b/.github/workflows/per-pr.yml @@ -38,7 +38,20 @@ jobs: test: name: Unit Tests timeout-minutes: 10 - runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest, ubuntu-arm, macos-intel, macos-arm, windows-latest ] + include: + - os: windows-latest + - os: ubuntu-latest + - os: ubuntu-arm + runsOn: ubuntu-24.04-arm64-2-core + - os: macos-intel + runsOn: macos-13 + - os: macos-arm + runsOn: macos-14 + runs-on: ${{ matrix.runsOn || matrix.os }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable @@ -69,7 +82,20 @@ jobs: TEMPORAL_CLIENT_CERT: ${{ secrets.TEMPORAL_CLIENT_CERT }} TEMPORAL_CLIENT_KEY: ${{ secrets.TEMPORAL_CLIENT_KEY }} timeout-minutes: 20 - runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest, ubuntu-arm, macos-intel, macos-arm, windows-latest ] + include: + - os: windows-latest + - os: ubuntu-latest + - os: ubuntu-arm + runsOn: ubuntu-24.04-arm64-2-core + - os: macos-intel + runsOn: macos-13 + - os: macos-arm + runsOn: macos-14 + runs-on: ${{ matrix.runsOn || matrix.os }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable diff --git a/tests/integ_tests/ephemeral_server_tests.rs b/tests/integ_tests/ephemeral_server_tests.rs index b5fcb375e..00b1a0168 100644 --- a/tests/integ_tests/ephemeral_server_tests.rs +++ b/tests/integ_tests/ephemeral_server_tests.rs @@ -1,5 +1,4 @@ -use futures_util::stream; -use futures_util::TryStreamExt; +use futures_util::{stream, TryStreamExt}; use std::time::{SystemTime, UNIX_EPOCH}; use temporal_client::{ClientOptionsBuilder, TestService, WorkflowService}; use temporal_sdk_core::ephemeral_server::{ @@ -29,7 +28,7 @@ async fn temporal_cli_default() { #[tokio::test] async fn temporal_cli_fixed() { let config = TemporalDevServerConfigBuilder::default() - .exe(fixed_cached_download("v0.4.0")) + .exe(fixed_cached_download("v1.2.0")) .build() .unwrap(); let mut server = config.start_server().await.unwrap(); @@ -81,43 +80,49 @@ async fn temporal_cli_concurrent_starts() -> Result<(), Box EphemeralExe { diff --git a/tests/integ_tests/metrics_tests.rs b/tests/integ_tests/metrics_tests.rs index a40d5c2a3..ffe539ed6 100644 --- a/tests/integ_tests/metrics_tests.rs +++ b/tests/integ_tests/metrics_tests.rs @@ -1159,7 +1159,7 @@ async fn otel_errors_logged_as_errors() { let _guard = tracing::subscriber::set_default(subscriber); let opts = OtelCollectorOptionsBuilder::default() - .url("https://localhostt:9995/v1/metrics".parse().unwrap()) // Invalid endpoint + .url("https://localhost:12345/v1/metrics".parse().unwrap()) // Nothing bound on that port .build() .unwrap(); let exporter = build_otlp_metric_exporter(opts).unwrap(); @@ -1174,7 +1174,8 @@ async fn otel_errors_logged_as_errors() { let _worker = starter.get_worker().await; // Wait to allow exporter to attempt sending metrics and fail. - tokio::time::sleep(Duration::from_secs(2)).await; + // Windows takes a while to fail the network attempt for some reason so 5s. + tokio::time::sleep(Duration::from_secs(5)).await; let logs = logs.lock().unwrap(); let log_str = String::from_utf8_lossy(&logs);