This is an automated email from the ASF dual-hosted git repository.

hubcio pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git


The following commit(s) were added to refs/heads/master by this push:
     new 309662d33 fix(ci): run integration tests when a binary they launch 
changes (#4131)
309662d33 is described below

commit 309662d338c14c16ecdf0ce61e722a9b8abad48e
Author: Hubert Gruszecki <[email protected]>
AuthorDate: Sat Sep 12 14:53:56 2026 +0200

    fix(ci): run integration tests when a binary they launch changes (#4131)
---
 .github/actions/rust/pre-merge/action.yml | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/.github/actions/rust/pre-merge/action.yml 
b/.github/actions/rust/pre-merge/action.yml
index f02712e0f..8b3413b79 100644
--- a/.github/actions/rust/pre-merge/action.yml
+++ b/.github/actions/rust/pre-merge/action.yml
@@ -123,6 +123,21 @@ runs:
           MODE=$(echo "$PLAN_JSON" | jq -r '.scope.mode')
           if [[ "$MODE" == "crates" ]]; then
             CRATES=$(echo "$PLAN_JSON" | jq -r '.scope.crates[]')
+            # `integration` launches the binaries of these packages through
+            # `Command::cargo_bin`, an edge cargo cannot record. The DAG 
selects
+            # them when their code or a crate they link (e.g. `partitions`)
+            # changes, but it does not select `integration`, so add it here.
+            # Keep this list in sync with the `cargo_bin` calls in 
core/integration.
+            SPAWNED_BINARY_PACKAGES=(server iggy-connectors iggy-mcp 
iggy-bench iggy-cli)
+            if ! grep -qx integration <<< "$CRATES"; then
+              for package in "${SPAWNED_BINARY_PACKAGES[@]}"; do
+                if grep -qx "$package" <<< "$CRATES"; then
+                  echo "::notice::Testing integration because it launches the 
binary of affected package ${package}"
+                  CRATES=$(printf '%s\nintegration\n' "$CRATES")
+                  break
+                fi
+              done
+            fi
             # `iggy_connector_<name>_{sink,source}` is exercised by
             # `integration::connectors::<name>`, but the plugin reaches the
             # runtime through dlopen, so cargo records no edge and the DAG 
drops

Reply via email to