Standing-Man commented on code in PR #3749:
URL: https://github.com/apache/iggy/pull/3749#discussion_r3687786625
##########
.github/actions/rust/pre-merge/action.yml:
##########
@@ -316,12 +309,87 @@ runs:
echo "DAG scope: full workspace (${TOTAL_CRATES}
crates)"
fi
echo "All targets build: ${bins_duration}s ($(date -ud
@${bins_duration} +'%M:%S'))"
- echo "Tests compile: ${compile_duration}s ($(date -ud
@${compile_duration} +'%M:%S'))"
- echo "Tests execute: ${test_duration}s ($(date -ud
@${test_duration} +'%M:%S'))"
+ echo "Tests compile and archive: ${compile_duration}s ($(date -ud
@${compile_duration} +'%M:%S'))"
echo "-----------------------------------------"
echo "Total build: ${build_duration}s ($(date -ud
@${build_duration} +'%M:%S'))"
- echo "Total time: ${total_duration}s ($(date -ud
@${total_duration} +'%M:%S'))"
echo "========================================="
+ du -h "$ARTIFACT_DIR"/*
+ shell: bash
+
+ - name: Upload archived Rust tests
+ if: inputs.task == 'test-build'
+ uses: actions/upload-artifact@v7
+ with:
+ name: rust-nextest-archive-${{ github.run_id }}-${{ github.run_attempt
}}
+ path: ${{ runner.temp }}/rust-nextest-archive
+ compression-level: 0
+ if-no-files-found: error
+ retention-days: 1
+
+ - name: Download archived Rust tests
+ if: startsWith(inputs.task, 'test-run-')
+ uses: actions/download-artifact@v8
+ with:
+ name: rust-nextest-archive-${{ github.run_id }}-${{ github.run_attempt
}}
+ path: ${{ runner.temp }}/rust-nextest-archive
+
+ - name: Run archived tests with coverage
+ if: startsWith(inputs.task, 'test-run-')
+ run: |
+ TASK="${{ inputs.task }}"
+ if [[ ! "$TASK" =~ ^test-run-([0-9]+)$ ]]; then
+ echo "::error::Invalid archived test task: $TASK"
+ exit 1
+ fi
+ PARTITION_INDEX="${BASH_REMATCH[1]}"
+ ARTIFACT_DIR="${RUNNER_TEMP}/rust-nextest-archive"
+ NEXTEST_FILTER=$(cat "$ARTIFACT_DIR/nextest-filter.txt")
+
+ mkdir -p target/debug
+ tar -C target/debug -xf "$ARTIFACT_DIR/connector-plugins.tar"
+ tar -C target/debug -xzf "$ARTIFACT_DIR/runtime-binaries.tar.gz"
+
+ RUNTIME_BINARIES=(
+ iggy
+ iggy-server
+ iggy-server-ng
+ iggy-connectors
+ iggy-mcp
+ iggy-bench
+ )
+ CARGO_BIN_ENV=()
+ for binary in "${RUNTIME_BINARIES[@]}"; do
+ binary_path="${GITHUB_WORKSPACE}/target/debug/${binary}"
+ if [[ ! -x "$binary_path" ]]; then
+ echo "::error::Required test runtime binary not found after
extraction: ${binary_path}"
+ exit 1
+ fi
+ CARGO_BIN_ENV+=("CARGO_BIN_EXE_${binary}=${binary_path}")
+ done
+
+ source <(cargo llvm-cov show-env --sh)
+
+ if [[ "$RUNNER_OS" == "Linux" ]]; then
+ sudo sysctl -w vm.max_map_count=2000000 || true
+ eval "$(dbus-launch --sh-syntax)"
+ export DBUS_SESSION_BUS_ADDRESS
+ eval "$(echo -n "test" | gnome-keyring-daemon --unlock
--components=secrets)"
+ echo -n "warmup" | secret-tool store --label="ci-warmup" ci-test
warmup
+ fi
+
+ test_start=$(date +%s)
+ env "${CARGO_BIN_ENV[@]}" cargo nextest run \
+ --archive-file "$ARTIFACT_DIR/rust-tests.tar.zst" \
+ --extract-to "$GITHUB_WORKSPACE" \
+ --extract-overwrite \
+ --workspace-remap "$GITHUB_WORKSPACE" \
Review Comment:
I’ve updated the implementation to read `CARGO_MANIFEST_DIR` at runtime and
to resolve the certificate path dynamically at runtime, respectively.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]