Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
f758024
implement peer discovery abstraction with StaticDiscovery and related…
GianIac Sep 12, 2026
7679cfc
Implement dynamic peer discovery with connection management
GianIac Sep 13, 2026
d7f7984
Implement peer discovery enhancements and bootstrap protocol
GianIac Sep 13, 2026
736c5db
Refactor discovery components to enhance query handling and response …
GianIac Sep 13, 2026
0499f7e
discovery: implement dynamic peer discovery modes and CLI integration
GianIac Sep 14, 2026
90bbb91
ci: add multicast mDNS check for macOS in CI workflow
GianIac Sep 14, 2026
1674d5e
chore: update chacha20 to version 0.10.2 and rustls to version 0.23.45
GianIac Sep 14, 2026
3d11f23
discovery_lan: add demo and test scripts for LAN discovery functionality
GianIac Sep 15, 2026
32e9f3e
enhance node configuration validation and error handling:
GianIac Sep 16, 2026
b5d10a0
Refactor discovery event capacity and improve candidate registry logi…
GianIac Sep 16, 2026
cfadd0d
Refactor NodeConfig validation and error handling + docs
GianIac Sep 17, 2026
694d7de
discovery LAN example doc
GianIac Sep 18, 2026
cc7e041
Add documentation for advertised endpoint resolution rules and clarif…
GianIac Sep 18, 2026
6dcfeeb
Refactor error handling in bootstrap tests to assert on denied requests
GianIac Sep 18, 2026
ed92a6c
Refactor file replacement functions to handle byte arrays and maintai…
GianIac Sep 18, 2026
d2e0e21
Update README
GianIac Sep 18, 2026
8acb0e1
Increase socket timeout in bootstrap tests from 2 seconds to 10 seconds
GianIac Sep 18, 2026
adb6b7a
Add mDNS interface check and improve logging in discovery tests
GianIac Sep 18, 2026
40b99e8
Update mDNS interface configuration and extend wait duration in disco…
GianIac Sep 18, 2026
06fd3e4
remove ignored 3-daemon mDNS multiprocess step from macOS CI and docu…
GianIac Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 67 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,64 @@ jobs:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
if: matrix.os == 'macos-latest'
with:
node-version: 22
- uses: actions-rust-lang/setup-rust-toolchain@9d7e65c320fdb52dcd45ffaa68deb6c02c8754d9 # v1.12.0
with:
toolchain: stable
rustflags: ""
- name: Run tests
run: cargo test --workspace --verbose
- name: Run multicast mDNS check
if: matrix.os == 'macos-latest'
env:
RUST_LOG: nx_core::discovery::mdns=debug,mdns_sd=debug
run: >-
cargo test -p nx-core
discovery::mdns::tests::two_daemons_discover_and_remove_an_announced_endpoint
-- --ignored --exact --nocapture

- name: Build three-node mDNS guests
if: matrix.os == 'macos-latest'
run: |
rustup target add wasm32-unknown-unknown
cargo build --locked --release --target wasm32-unknown-unknown \
--manifest-path examples/discovery_lan/Cargo.toml \
--target-dir examples/discovery_lan/target/reader
cargo build --locked --release --target wasm32-unknown-unknown \
--manifest-path examples/discovery_lan/Cargo.toml --features increment \
--target-dir examples/discovery_lan/target/writer
- name: Run discovery demo script tests including real lifecycle
if: matrix.os == 'macos-latest'
env:
NUMAX_DEMO_E2E: "1"
# cargo test built target/debug/nx; both guest variants were built above.
# This requires a real local IPv4 interface, not three separate devices.
run: node --test examples/discovery_lan/demo.test.mjs

discovery-demo-tests:
name: Discovery Demo Arguments and Configuration
runs-on: macos-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 22
- name: Check local interface prerequisite
# Initialization validates an actual interface even though these tests
# do not run a daemon or exchange multicast traffic.
run: >-
node --input-type=module -e
"import { networkInterfaces } from 'node:os';
import assert from 'node:assert/strict';
assert.ok(Object.values(networkInterfaces()).flat().some(a => a?.family === 'IPv4' && !a.internal),
'discovery demo configuration tests require a non-loopback local IPv4 interface');"
- name: Test demo arguments and private configuration
run: >-
node --test --test-name-pattern='rejects missing arguments|creates private loopback'
examples/discovery_lan/demo.test.mjs

build-wasm:
name: Build WASM Examples
Expand Down Expand Up @@ -140,12 +192,21 @@ jobs:
run: cargo build --release --target wasm32-unknown-unknown --manifest-path examples/distributed_counter/Cargo.toml
- name: Build previous release binary
run: |
git worktree add "${RUNNER_TEMP}/numax-v0.1.0" v0.1.0
cargo build --release --manifest-path "${RUNNER_TEMP}/numax-v0.1.0/Cargo.toml" -p nx-cli
expected_commit=419d840e2afe780e7ad1f4135e39e9b38a4f30b1
actual_commit="$(git rev-parse --verify 'refs/tags/v0.1.4^{commit}')"
if [ "$actual_commit" != "$expected_commit" ]; then
echo "Unexpected v0.1.4 tag commit: $actual_commit (expected $expected_commit)"
exit 1
fi
git worktree add --detach "${RUNNER_TEMP}/numax-v0.1.4" refs/tags/v0.1.4
cargo build --release --manifest-path "${RUNNER_TEMP}/numax-v0.1.4/Cargo.toml" -p nx-cli
- name: Run multi-process CLI smoke test
env:
NUMAX_PREVIOUS_NX_BIN: ${{ runner.temp }}/numax-v0.1.0/target/release/nx
run: cargo test -p nx-cli --test multiprocess_smoke -- --ignored
NUMAX_PREVIOUS_NX_BIN: ${{ runner.temp }}/numax-v0.1.4/target/release/nx
# Real multicast is explicitly opted into in the macOS test job above.
run: >-
cargo test -p nx-cli --test multiprocess_smoke
-- --ignored --skip discovery_lan::

benchmark-tools:
name: Benchmark Comparator Tests
Expand Down Expand Up @@ -267,6 +328,7 @@ jobs:
- fmt
- clippy
- test
- discovery-demo-tests
- build-wasm
- cli-smoke
- benchmark-tools
Expand All @@ -282,6 +344,7 @@ jobs:
[[ "${{ needs.fmt.result }}" != "success" ]] || \
[[ "${{ needs.clippy.result }}" != "success" ]] || \
[[ "${{ needs.test.result }}" != "success" ]] || \
[[ "${{ needs.discovery-demo-tests.result }}" != "success" ]] || \
[[ "${{ needs.build-wasm.result }}" != "success" ]] || \
[[ "${{ needs.cli-smoke.result }}" != "success" ]] || \
[[ "${{ needs.benchmark-tools.result }}" != "success" ]] || \
Expand Down
Loading
Loading