@@ -710,24 +710,18 @@ jobs:
710710 tags : socket-patch-test-${{ matrix.ecosystem }}:latest
711711 load : true
712712
713- - name : Build instrumented socket-patch binary
714- # Source `cargo llvm-cov show-env` into the current shell so this
715- # `cargo build` picks up RUSTC_WRAPPER=cargo-llvm-cov and the
716- # same RUSTFLAGS that the subsequent `cargo llvm-cov` test step
717- # will use. The bin we build ends up byte-compatible with the
718- # test binaries — same source hashes → unified coverage map at
719- # report time. Env stays scoped to this step (intentional;
720- # cargo llvm-cov manages its own env in the test step).
721- run : |
722- eval "$(cargo llvm-cov show-env --export-prefix 2>/dev/null)"
723- cargo build --bin socket-patch
724-
725713 - name : Configure docker-e2e coverage hooks
714+ # Mount the instrumented socket-patch that the test step's own
715+ # `cargo llvm-cov` builds for the integration tests (cargo builds
716+ # a package's bins before running its integration tests), and
717+ # write the in-container profraws next to the test processes'
718+ # ones. `cargo llvm-cov report` reads only
719+ # target/llvm-cov-target/*.profraw and objects built there, so a
720+ # separately built binary or profraws elsewhere in target/ never
721+ # reach the lcov.
726722 run : |
727- echo "SOCKET_PATCH_COV_BIN=$PWD/target/debug/socket-patch" >> "$GITHUB_ENV"
728- # Profraw files from the in-container binary land here.
729- # cargo-llvm-cov scans target/ for *.profraw at report time.
730- echo "SOCKET_PATCH_COV_PROFRAW_DIR=$PWD/target" >> "$GITHUB_ENV"
723+ echo "SOCKET_PATCH_COV_BIN=$PWD/target/llvm-cov-target/debug/socket-patch" >> "$GITHUB_ENV"
724+ echo "SOCKET_PATCH_COV_PROFRAW_DIR=$PWD/target/llvm-cov-target" >> "$GITHUB_ENV"
731725
732726 - name : Run ${{ matrix.ecosystem }} Docker e2e test with coverage
733727 run : |
@@ -1109,8 +1103,13 @@ jobs:
11091103 - {os: ubuntu-latest, suite: e2e_bun_lockb, bun: '1.0.36', test_filter: --include-ignored}
11101104 - {os: ubuntu-latest, suite: e2e_bun_lockb, bun: '1.1.45', test_filter: --include-ignored}
11111105 # Bun >= 1.4 migrating a hosted workspace bun.lockb to bun.lock
1112- # (#803): the only binary-lock test whose reader must be 1.4+.
1113- - {os: ubuntu-latest, suite: e2e_bun_lockb, bun: '1.4.2', test_filter: --include-ignored workspace_text_migration_heals_on_rerun}
1106+ # (#803; its reader must be 1.4+) and a vendored one, then
1107+ # reverting it (#784; skipped by the < 1.2 readers above). Both
1108+ # 1.4.2 and 1.3.14 also run the isolated-linker vendored re-run
1109+ # after a late dependent (#861); 1.3 re-hoists a frozen binary lock
1110+ # and refuses one whose trees changed.
1111+ - {os: ubuntu-latest, suite: e2e_bun_lockb, bun: '1.4.2', test_filter: --include-ignored text_migration workspace_late_dependent}
1112+ - {os: ubuntu-latest, suite: e2e_bun_lockb, bun: '1.3.14', test_filter: --include-ignored workspace_late_dependent}
11141113 # Real-vlt capstones (DESIGN §8.4): wiremock patch service and a local
11151114 # npm registry fed from npmjs, driven by the pinned vlt release
11161115 # (`node vlt.js`, installed below from a sha512-checked `npm pack`).
@@ -1355,14 +1354,15 @@ jobs:
13551354 env :
13561355 UV_TEST_VERSION : ${{ matrix.uv }}
13571356 run : |
1358- python -m pip install --disable-pip-version-check --upgrade pip "uv==$UV_TEST_VERSION"
1357+ scripts/ pip- install-retry.sh --upgrade pip "uv==$UV_TEST_VERSION"
13591358 uv --version
13601359
13611360 - name : Install uv (PDM / Hatch legs)
13621361 if : matrix.pdm != '' || matrix.hatch != ''
13631362 # The suites bootstrap the pinned PDM / Hatch into their own venv
13641363 # with uv; this uv is tooling, not the release under test.
1365- run : python -m pip install uv==0.11.19
1364+ shell : bash
1365+ run : scripts/pip-install-retry.sh uv==0.11.19
13661366
13671367 - name : Install pinned Poetry
13681368 if : matrix.poetry != ''
@@ -1374,7 +1374,7 @@ jobs:
13741374 env :
13751375 POETRY_TEST_VERSION : ${{ matrix.poetry }}
13761376 run : |
1377- python -m pip install uv==0.11.19
1377+ scripts/ pip- install-retry.sh uv==0.11.19
13781378 case "$POETRY_TEST_VERSION" in 1.0.*|1.1.*) py=3.8.20 ;; *) py=3.12 ;; esac
13791379 uv venv "$RUNNER_TEMP/poetry" --python "$py"
13801380 extra=""; [ "$POETRY_TEST_VERSION" = "1.2.2" ] && extra="cleo==1.0.0a5"
@@ -2460,7 +2460,7 @@ jobs:
24602460
24612461 - name : Install uv
24622462 if : steps.gate.outputs.run == 'true'
2463- run : python -m pip install --disable-pip-version-check uv && uv --version
2463+ run : scripts/ pip- install-retry.sh uv && uv --version
24642464
24652465 - name : Setup Ruby
24662466 if : steps.gate.outputs.run == 'true'
0 commit comments