77 CARGO_FLAGS : " --release --locked --all-targets --features pubsub-emulator-test,iceberg-tests-fs,iceberg-tests-glue"
88 FELDERA_PLATFORM_VERSION_SUFFIX : ${{ github.sha }}
99 RUSTC_WRAPPER : sccache
10- SCCACHE_DIR : /sccache
11- SCCACHE_CACHE_SIZE : 512G
10+ SCCACHE_CACHE_SIZE : ${{ vars.SCCACHE_CACHE_SIZE }}
11+ SCCACHE_BUCKET : ${{ vars.SCCACHE_BUCKET }}
12+ SCCACHE_ENDPOINT : ${{ vars.SCCACHE_ENDPOINT }}
13+ SCCACHE_REGION : ${{ vars.SCCACHE_REGION }}
14+ AWS_ACCESS_KEY_ID : " ${{ secrets.CI_K8S_MINIO_ACCESS_KEY_ID }}"
15+ AWS_SECRET_ACCESS_KEY : " ${{ secrets.CI_K8S_MINIO_SECRET_ACCESS_KEY }}"
1216
1317jobs :
1418 build-rust :
@@ -18,32 +22,48 @@ jobs:
1822 strategy :
1923 matrix :
2024 include :
21- - runner : [self-hosted, skylake40 ]
25+ - runner : [k8s-runners-amd64 ]
2226 arch : x86_64
2327 target : x86_64-unknown-linux-gnu
24- - runner : [self-hosted, alteram128 ]
28+ - runner : [k8s-runners-arm64 ]
2529 arch : aarch64
2630 target : aarch64-unknown-linux-gnu
2731 runs-on : ${{ matrix.runner }}
2832
2933 container :
30- image : ghcr.io/feldera/feldera-dev:sha-cfae3f2af7e7676dde51af39ed76332f67d91b6a
31- options : --user=ubuntu
32- volumes :
33- - /sccache:/sccache
34+ image : ghcr.io/feldera/feldera-dev:sha-8781162739b57966b50e89e85730d522d08d3d87
3435
3536 steps :
3637 - name : Checkout repository
3738 uses : actions/checkout@v4
3839
40+ - name : Cache Cargo registry and index
41+ uses : actions/cache@v4
42+ with :
43+ path : |
44+ ~/.cargo/registry
45+ ~/.cargo/git
46+ key : cargo-registry-${{ runner.os }}-${{ matrix.target }}-${{ hashFiles('**/Cargo.lock') }}
47+ restore-keys : |
48+ cargo-registry-${{ runner.os }}-${{ matrix.target }}-
49+
50+ # Thanks to rust cargo non-sense it's too hard to split this into test job
51+ #
52+ # limiting jobs with --test-threads 18: doc test call the linker for every test, on arm machines
53+ # this can lead up to 128 parallel linkers being used OOM'ing the pod
54+ # https://github.com/rust-lang/cargo/issues/10702
55+ - name : Run Rust doc tests
56+ if : matrix.arch == 'x86_64'
57+ run : |
58+ # Don't build the webconsole again for rust tests
59+ export WEBCONSOLE_BUILD_DIR="$(mktemp -d)"
60+ touch $WEBCONSOLE_BUILD_DIR/index.html
61+ cargo test --locked --doc --workspace -- --test-threads 18
62+
3963 - name : Build Rust binaries
4064 run : |
4165 cargo build ${{ env.CARGO_FLAGS }} --target=${{ matrix.target }}
4266
43- # Thanks to rust cargo non-sense it's too hard to split this into separate build and test jobs
44- - name : Run Rust doc tests
45- run : cargo test --locked --doc --workspace
46-
4767 - name : Print sccache stats
4868 run : |
4969 sccache --show-stats
0 commit comments