|
37 | 37 | prev_rust: &prev_rust 1.93.1 |
38 | 38 | latest_rust: &latest_rust 1.94.0 |
39 | 39 |
|
| 40 | + |
| 41 | +defaults: |
| 42 | + run: |
| 43 | + shell: bash |
| 44 | + |
40 | 45 | jobs: |
41 | 46 | build_test: |
42 | 47 | strategy: |
|
51 | 56 | runner: linux-arm64-16cpu |
52 | 57 | - triple: aarch64-apple-darwin |
53 | 58 | runner: macos-26 |
| 59 | + - triple: x86_64-pc-windows-gnu |
| 60 | + runner: windows-8vcpu |
| 61 | + - triple: x86_64-pc-windows-msvc |
| 62 | + runner: windows-8vcpu |
54 | 63 | toolchain: |
55 | 64 | - version: *prev_rust |
56 | 65 | label: prev |
|
70 | 79 | env: |
71 | 80 | COMMON_FLAGS: --all-features --workspace |
72 | 81 | CARGO_BUILD_TARGET: ${{ matrix.target.triple }} |
| 82 | + is_windows_gnu: ${{ endsWith(matrix.target.triple, '-windows-gnu') }} |
73 | 83 |
|
74 | 84 | steps: |
75 | 85 | - name: Checkout |
@@ -99,8 +109,28 @@ jobs: |
99 | 109 | -- -D warnings -A missing_docs |
100 | 110 | - name: Build (cargo build) |
101 | 111 | run: cargo build $COMMON_FLAGS --all-targets |
102 | | - - name: Test (cargo test) |
103 | | - run: cargo test $COMMON_FLAGS |
| 112 | + |
| 113 | + # `ts_cli_util` enables tracy when passed `--all-features`, which `*-windows-gnu` |
| 114 | + # targets appear to be allergic to. |
| 115 | + # |
| 116 | + # `ts_python` has the same lib name as the `tailscale` root crate, which again appears |
| 117 | + # to just be an issue on `*-windows-gnu` targets, so don't test it here (depend on |
| 118 | + # python tests instead). |
| 119 | + - name: Test (cargo test), --all-features |
| 120 | + run: |- |
| 121 | + cargo test \ |
| 122 | + $COMMON_FLAGS \ |
| 123 | + ${{ case(env.is_windows_gnu == 'true', '--exclude ts_cli_util --exclude ts_python', '') }} |
| 124 | +
|
| 125 | + # See note on previous step: `ts_cli_util` (currently the only special-cased crate |
| 126 | + # like this) is built with default features to avoid apparent linker issues on |
| 127 | + # `*-windows-gnu` targets |
| 128 | + - name: Test (cargo test), --features default (select crates) |
| 129 | + if: ${{ env.is_windows_gnu }} |
| 130 | + run: |- |
| 131 | + cargo test \ |
| 132 | + -p ts_cli_util |
| 133 | +
|
104 | 134 | - name: Release build (cargo build --release) |
105 | 135 | run: cargo build $COMMON_FLAGS --release --all-targets |
106 | 136 | - name: Docs (cargo doc) |
|
0 commit comments