Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
7044287
refactor neuron deregistration
JohnReedV Oct 28, 2025
8d7a746
clippy
JohnReedV Oct 29, 2025
b9c6db3
Merge branch 'devnet-ready' into refactor-neuron-deregistration
JohnReedV Oct 29, 2025
8fb5c36
remove trust, rank, pruning_score from epoch
JohnReedV Oct 29, 2025
23e40a7
add migration to wipe rank, trust, pruning_score
JohnReedV Oct 29, 2025
7d5ab66
Merge branch 'refactor-neuron-deregistration' of github.com:opentenso…
JohnReedV Oct 29, 2025
2bc6a9e
Merge branch 'devnet-ready' into refactor-neuron-deregistration
JohnReedV Oct 29, 2025
9965318
Put faucet extrinsic behind ‘pow-faucet’ feature.
shamil-gadelshin Oct 30, 2025
51b8885
Spec version 333 -> 334
shamil-gadelshin Oct 30, 2025
cb74b1f
Merge branch 'devnet-ready' into refactor-neuron-deregistration
JohnReedV Oct 30, 2025
adcb2d8
refactor & add tests
JohnReedV Oct 30, 2025
6a21d22
Merge branch 'devnet-ready' into refactor-neuron-deregistration
JohnReedV Nov 10, 2025
984bc37
auto-update benchmark weights
github-actions[bot] Nov 10, 2025
758020c
add getProxies in precompile
open-junius Nov 14, 2025
d397207
test all
open-junius Nov 14, 2025
d15137f
bump version
open-junius Nov 14, 2025
eddd9a8
update result struct
open-junius Nov 14, 2025
077a8d5
fix test
open-junius Nov 14, 2025
77a8082
cargo fix
open-junius Nov 15, 2025
f86204d
Revert "cargo fix"
open-junius Nov 15, 2025
bc6c3e7
Merge branch 'devnet-ready' into refactor-neuron-deregistration
JohnReedV Nov 20, 2025
0a8ad95
fix syntax
JohnReedV Nov 20, 2025
29462d9
bump spec
JohnReedV Nov 20, 2025
4d3563b
bump spec again
JohnReedV Nov 20, 2025
d9a79d7
rebase PR
open-junius Nov 24, 2025
6e871e1
Merge branch 'devnet-ready' into refactor-neuron-deregistration
ppolewicz Nov 24, 2025
a2fe2fa
Apply code review suggestion
ppolewicz Nov 24, 2025
22a812a
bump version
open-junius Nov 26, 2025
59acb8e
remove contract tests folder
open-junius Nov 26, 2025
6ff5082
remove redundant await
open-junius Nov 26, 2025
f2ac464
Merge branch 'devnet-ready' into get_proxies_in_precompile
open-junius Nov 26, 2025
3bcf9d2
Merge branch 'devnet-ready' into get_proxies_in_precompile
open-junius Dec 2, 2025
8442095
commit Cargo.lock
open-junius Dec 2, 2025
38de2ae
commit Cargo.lock
open-junius Dec 2, 2025
9e1a589
cargo clippy
open-junius Dec 2, 2025
ad61fff
cargo fix
open-junius Dec 2, 2025
1848695
cargo clippy
open-junius Dec 2, 2025
3b34f23
commit Cargo.lock
open-junius Dec 2, 2025
91549da
commit Cargo.lock
open-junius Dec 2, 2025
bee530e
fix into issue
open-junius Dec 2, 2025
de6703b
more time to run localnet.sh
open-junius Dec 2, 2025
a43a45f
bump version
open-junius Dec 2, 2025
9cc67d3
bump rust to 1.89
l0r1s Dec 2, 2025
97dfd33
fix cargo audit
l0r1s Dec 2, 2025
00d1711
allow unused for utility pallet id
l0r1s Dec 2, 2025
6239aa5
cargo clippy
l0r1s Dec 2, 2025
861cb74
cargo fmt
l0r1s Dec 2, 2025
a07f80a
fix lifetimes
l0r1s Dec 2, 2025
f23fa5e
fix comments
l0r1s Dec 2, 2025
d502489
commit Cargo.lock
l0r1s Dec 2, 2025
c94de6f
fix conflict
open-junius Dec 5, 2025
f8bc3b8
fix conflict
open-junius Dec 5, 2025
d6d613f
Merge branch 'devnet-ready' into get_proxies_in_precompile
open-junius Dec 8, 2025
4194c75
cargo fmt
open-junius Dec 8, 2025
b0c5443
Merge branch 'devnet-ready' into fix-cargo-audit
l0r1s Dec 8, 2025
cebf5bb
cargo fmt
l0r1s Dec 8, 2025
960510c
Filter for incorrect sudo calls
grbIzl Dec 1, 2025
89fe04f
Propagate runtime-benchmarks
grbIzl Dec 8, 2025
76757b9
Propagate try-runtime
grbIzl Dec 8, 2025
8ac6201
all alpha price in Ink
open-junius Dec 9, 2025
c974798
cargo fix
open-junius Dec 9, 2025
4ed7fa0
fix ink test
open-junius Dec 9, 2025
2a02442
fix time count
open-junius Dec 9, 2025
237b344
optimize process
open-junius Dec 9, 2025
3fccecf
bump version
open-junius Dec 9, 2025
07b2113
Merge remote-tracking branch 'origin/devnet-ready' into feat/reject-i…
grbIzl Dec 9, 2025
bc4967c
cargo fmt
grbIzl Dec 9, 2025
8e3be93
Introduce RootProp storage map
shamil-gadelshin Dec 10, 2025
a67742a
Merge branch 'devnet-ready' into refactor-neuron-deregistration
JohnReedV Dec 10, 2025
3b5b8d9
use `clear` instead of `remove` in migration
JohnReedV Dec 10, 2025
faf0d2c
bump spec
JohnReedV Dec 10, 2025
0299a83
improve loop on alpha map
open-junius Dec 11, 2025
a54ec37
cargo clippy
open-junius Dec 11, 2025
917aa13
fix unit tests
open-junius Dec 11, 2025
2b188b8
commit Cargo.lock
open-junius Dec 11, 2025
ea2640f
bump version
open-junius Dec 11, 2025
e4139b7
Refactor root_prop in run_coinbase
shamil-gadelshin Dec 11, 2025
e58b165
Merge pull request #2276 from opentensor/improve-loop-alpha-map
sam0x17 Dec 11, 2025
181ffd8
Move sudo filter into the separate Transaction Extension
grbIzl Dec 11, 2025
1576fdd
fix conflict
open-junius Dec 11, 2025
a8e64a0
cargo fmt
grbIzl Dec 11, 2025
c28baff
Merge pull request #2272 from opentensor/alpha-price-ink
sam0x17 Dec 11, 2025
9587f36
Merge branch 'devnet-ready' into refactor-neuron-deregistration
JohnReedV Dec 11, 2025
f4c6398
bump spec
JohnReedV Dec 11, 2025
e16a92e
Merge branch 'devnet-ready' into feat/reject-incorrect-sudo-exts
grbIzl Dec 11, 2025
2a82482
Change root claim default type.
shamil-gadelshin Dec 11, 2025
84e2ba6
Fix clippy
grbIzl Dec 11, 2025
b717be5
Merge branch 'feat/reject-incorrect-sudo-exts' of github.com:opentens…
grbIzl Dec 11, 2025
a8a0546
auto-update benchmark weights
github-actions[bot] Dec 11, 2025
f9ef883
Merge pull request #2282 from opentensor/change-root-claim-default
sam0x17 Dec 11, 2025
be221cd
add test_registration_pruning
JohnReedV Dec 11, 2025
0431be6
add `pr-number` to `workflow_dispatch`
basfroman Dec 11, 2025
71dd6a7
Merge pull request #2285 from opentensor/feat/roman/create-pr-based-d…
sam0x17 Dec 12, 2025
1cb8d55
make compilation faster
basfroman Dec 12, 2025
67bcf2d
fast-runtime
basfroman Dec 12, 2025
07a9bd1
fix `runs-on` in `artifacts`
basfroman Dec 12, 2025
6b38abb
we don't need arm64 for tests
basfroman Dec 12, 2025
1c83bec
BUILT_IN_CI should be passed
basfroman Dec 12, 2025
5942b08
just one runtime version
basfroman Dec 12, 2025
bb57491
oh, we still need both bins
basfroman Dec 12, 2025
813b8dd
run each test separately (save a bunch of the time)
basfroman Dec 12, 2025
f5efbfe
fix empty list and wrong path
basfroman Dec 12, 2025
e6aebcf
fake bins to save more time
basfroman Dec 12, 2025
649ffbd
fix `find-btcli-e2e-tests`
basfroman Dec 12, 2025
39c725c
Merge pull request #2158 from opentensor/refactor-neuron-deregistration
JohnReedV Dec 12, 2025
cfbfbd4
increase `max-parallel`
basfroman Dec 12, 2025
09b3f84
cleanup
basfroman Dec 12, 2025
6464a2f
Merge branch 'devnet-ready' into feat/roman/improve-bt-e2e-test-workflow
basfroman Dec 12, 2025
4db9f16
we use non-fast-runtime for some tests
basfroman Dec 12, 2025
ee967f6
Merge pull request #2288 from opentensor/feat/roman/improve-bt-e2e-te…
sam0x17 Dec 13, 2025
1fa82dd
Change order for tx extension
grbIzl Dec 13, 2025
35ed4cf
cargo fmt
grbIzl Dec 13, 2025
d6b4ef4
Merge remote-tracking branch 'origin/devnet-ready' into feat/reject-i…
grbIzl Dec 13, 2025
19f99e5
Remove Val type
grbIzl Dec 15, 2025
abbf449
auto-update benchmark weights
github-actions[bot] Dec 15, 2025
064a074
Merge pull request #2277 from opentensor/root-prop-storage-map
shamil-gadelshin Dec 15, 2025
1f59643
cargo fmt
grbIzl Dec 15, 2025
9a1fd49
ignore node_modules
camfairchild Dec 15, 2025
ec1bccb
Merge remote-tracking branch 'origin/main' into devnet-ready
sam0x17 Dec 15, 2025
25ab745
Merge pull request #2292 from opentensor/misc/add-evmtests-node-modul…
sam0x17 Dec 15, 2025
c7a81e2
cargo fmt
sam0x17 Dec 15, 2025
675111c
Merge pull request #2294 from opentensor/fix-merge-conflicts-12-15-2025
sam0x17 Dec 16, 2025
9fbcbba
Merge branch 'devnet-ready' into fix-cargo-audit
l0r1s Dec 16, 2025
566d91c
cargo clippy
l0r1s Dec 16, 2025
1418eaa
cargo fmt
l0r1s Dec 16, 2025
d01216d
fix script
l0r1s Dec 16, 2025
dd4b320
cargo clippy
l0r1s Dec 16, 2025
983abce
cargo fmt
l0r1s Dec 16, 2025
58d55d5
fix cargo fmt in ci to error on ice
l0r1s Dec 16, 2025
a60b5e6
use stable cargo fmt
l0r1s Dec 16, 2025
7b027b7
Merge pull request #2244 from opentensor/fix-cargo-audit
sam0x17 Dec 16, 2025
b9a299a
Merge branch 'devnet-ready' into put-faucet-behind-feature
shamil-gadelshin Dec 16, 2025
26e638c
add precisionloss error
camfairchild Dec 16, 2025
64fc846
handle decrease_stake fn
camfairchild Dec 16, 2025
3f79fb2
add tests for precision loss during recycle/burn
camfairchild Dec 16, 2025
94355de
chore: clippy
camfairchild Dec 16, 2025
3ce8ec5
Merge remote-tracking branch 'origin/devnet-ready' into feat/reject-i…
grbIzl Dec 16, 2025
47fdfb8
reduce precision and lower amount for test
camfairchild Dec 16, 2025
133d8d9
Merge pull request #2264 from opentensor/feat/reject-incorrect-sudo-exts
sam0x17 Dec 16, 2025
de708ba
Merge pull request #2207 from opentensor/get_proxies_in_precompile
sam0x17 Dec 17, 2025
fd5236d
auto-update benchmark weights
github-actions[bot] Dec 17, 2025
d9f43e1
Merge pull request #2166 from opentensor/put-faucet-behind-feature
sam0x17 Dec 17, 2025
daf6ad8
fix: remove duplicate safe_exp function, use exp_safe instead
MkDev11 Dec 8, 2025
7173640
Revert root claim default type back to Swap
shamil-gadelshin Dec 18, 2025
96e31af
Merge pull request #2306 from opentensor/reverse-root-claim-default-c…
sam0x17 Dec 18, 2025
f7475e3
Merge pull request #2265 from MkDev11/fix/remove-duplicate-exp-functions
sam0x17 Dec 18, 2025
7115a0c
hotfix: clamp EVM tx priority to avoid frontrunning
sam0x17 Dec 18, 2025
80e3084
cargo clippy
sam0x17 Dec 18, 2025
76992fc
fix lints
sam0x17 Dec 18, 2025
5845cbb
cargo fmt
sam0x17 Dec 18, 2025
7de8a10
Merge pull request #2307 from opentensor/fix-evm-priority
sam0x17 Dec 18, 2025
bdd42c8
spec bump
camfairchild Dec 18, 2025
1a82d05
clear taoflow when removing network
camfairchild Dec 19, 2025
9328113
add test
camfairchild Dec 19, 2025
07c22cb
Merge pull request #2310 from latent-to/fix/clear-taoflow-ema-new-subnet
sam0x17 Dec 19, 2025
be47139
Merge pull request #2302 from latent-to/fix/ensure-recycle-at-most-am…
sam0x17 Dec 19, 2025
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
4 changes: 3 additions & 1 deletion .github/workflows/cargo-audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,6 @@ jobs:
cargo audit --ignore RUSTSEC-2023-0091 \
--ignore RUSTSEC-2024-0438 \
--ignore RUSTSEC-2025-0009 \
--ignore RUSTSEC-2025-0055
--ignore RUSTSEC-2025-0055 \
--ignore RUSTSEC-2025-0073 \
--ignore RUSTSEC-2025-0118
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
check-label:
runs-on: ubuntu-latest
outputs:
skip-bittensor-e2e-tests: ${{ steps.get-labels.outputs.skip-bittensor-e2e-tests }}
skip-bittensor-e2e-tests: ${{ steps.get-labels.outputs.skip-bittensor-e2e-tests || steps.set-default.outputs.skip-bittensor-e2e-tests }}
steps:
- name: Install dependencies
run: |
Expand All @@ -38,11 +38,12 @@ jobs:
- name: Check out repository
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}

- name: Get labels from PR
id: get-labels
if: github.event_name == 'pull_request'
run: |
LABELS=$(gh pr -R ${{ github.repository }} view ${{ github.event.pull_request.number }} --json labels --jq '.labels[].name')
echo "Current labels: $LABELS"
Expand All @@ -54,6 +55,12 @@ jobs:
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Set default skip value for workflow_dispatch
id: set-default
if: github.event_name == 'workflow_dispatch'
run: |
echo "skip-bittensor-e2e-tests=false" >> $GITHUB_OUTPUT

find-btcli-e2e-tests:
needs: check-label
if: needs.check-label.outputs.skip-bittensor-e2e-tests == 'false'
Expand All @@ -74,11 +81,44 @@ jobs:
working-directory: ${{ github.workspace }}/btcli
run: git checkout staging

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: "false"

- name: Create Python virtual environment
working-directory: ${{ github.workspace }}/btcli
run: uv venv --seed

- name: Install dependencies
working-directory: ${{ github.workspace }}/btcli
run: |
source .venv/bin/activate
uv run --active pip install --upgrade pip
uv run --active pip install '.[dev]'
uv run --active pip install pytest

- name: Find e2e test files
id: get-btcli-tests
working-directory: ${{ github.workspace }}/btcli
run: |
test_files=$(find ${{ github.workspace }}/btcli/tests/e2e_tests -name "test*.py" | jq -R -s -c 'split("\n") | map(select(. != ""))')
echo "test-files=$test_files" >> $GITHUB_OUTPUT
set -euo pipefail
test_matrix=$(
uv run pytest -q --collect-only tests/e2e_tests \
| sed -n '/^tests\//p' \
| jq -R -s -c '
split("\n")
| map(select(. != ""))
| map({nodeid: ., label: (sub("^tests/e2e_tests/"; ""))})
'
)
echo "Found tests: $test_matrix"
echo "test-files=$test_matrix" >> "$GITHUB_OUTPUT"
shell: bash

find-sdk-e2e-tests:
Expand All @@ -101,34 +141,148 @@ jobs:
working-directory: ${{ github.workspace }}/bittensor
run: git checkout staging

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: "false"

- name: Create Python virtual environment
working-directory: ${{ github.workspace }}/bittensor
run: uv venv --seed

- name: Install dependencies
working-directory: ${{ github.workspace }}/bittensor
run: |
source .venv/bin/activate
uv run --active pip install --upgrade pip
uv run --active pip install '.[dev]'
uv run --active pip install pytest

- name: Find e2e test files
id: get-sdk-tests
working-directory: ${{ github.workspace }}/bittensor
run: |
test_files=$(find ${{ github.workspace }}/bittensor/tests/e2e_tests -name "test*.py" | jq -R -s -c 'split("\n") | map(select(. != ""))')
echo "test-files=$test_files" >> $GITHUB_OUTPUT
set -euo pipefail
test_matrix=$(
uv run pytest -q --collect-only tests/e2e_tests \
| sed -n '/^e2e_tests\//p' \
| sed 's|^|tests/|' \
| jq -R -s -c '
split("\n")
| map(select(. != ""))
| map({nodeid: ., label: (sub("^tests/e2e_tests/"; ""))})
'
)
echo "Found tests: $test_matrix"
echo "test-files=$test_matrix" >> "$GITHUB_OUTPUT"
shell: bash

build-image-with-current-branch:
# build artifacts for fast-runtime and non-fast-runtime
artifacts:
name: Node • ${{ matrix.runtime }} • ${{ matrix.platform.arch }}
needs: check-label
if: needs.check-label.outputs.skip-bittensor-e2e-tests == 'false'
runs-on: ubuntu-latest
strategy:
matrix:
platform:
- runner: [self-hosted, type-ccx33]
triple: x86_64-unknown-linux-gnu
arch: amd64
runtime: ["fast-runtime", "non-fast-runtime"]

runs-on: ${{ matrix.platform.runner }}

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}

- name: Install Rust + dependencies
run: |
chmod +x ./scripts/install_build_env.sh
./scripts/install_build_env.sh

- name: Patch non-fast-runtime node
- name: Add Rust target triple
run: |
source "$HOME/.cargo/env"
rustup target add ${{ matrix.platform.triple }}

- name: Patch limits for local run
run: |
chmod +x ./scripts/localnet_patch.sh
./scripts/localnet_patch.sh

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Build binaries
run: |
export PATH="$HOME/.cargo/bin:$PATH"
export CARGO_BUILD_TARGET="${{ matrix.platform.triple }}"

if [ "${{ matrix.runtime }}" = "fast-runtime" ]; then
./scripts/localnet.sh --build-only
else
./scripts/localnet.sh False --build-only
fi

# use `ci_target` name bc .dockerignore excludes `target`
- name: Prepare artifacts for upload
run: |
RUNTIME="${{ matrix.runtime }}"
TRIPLE="${{ matrix.platform.triple }}"

# Verify binaries exist before copying
BINARY_PATH="target/${RUNTIME}/${TRIPLE}/release/node-subtensor"
WASM_PATH="target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/node_subtensor_runtime.compact.compressed.wasm"

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
if [[ ! -f "$BINARY_PATH" ]]; then
echo "❌ Error: Binary not found at $BINARY_PATH"
exit 1
fi

if [[ ! -f "$WASM_PATH" ]]; then
echo "❌ Error: WASM file not found at $WASM_PATH"
exit 1
fi

mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/
cp -v "$BINARY_PATH" \
build/ci_target/${RUNTIME}/${TRIPLE}/release/

mkdir -p build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/
cp -v "$WASM_PATH" \
build/ci_target/${RUNTIME}/${TRIPLE}/release/wbuild/node-subtensor-runtime/

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: binaries-${{ matrix.platform.triple }}-${{ matrix.runtime }}
path: build/
if-no-files-found: error

# Collect all artifacts and build a Docker image
build-image-with-current-branch:
needs: [check-label, artifacts]
if: needs.check-label.outputs.skip-bittensor-e2e-tests == 'false'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}

- name: Download all binary artifacts
uses: actions/download-artifact@v5
with:
pattern: binaries-*
path: build/
merge-multiple: true

- name: Move Docker data-root to /mnt/data
run: |
Expand All @@ -141,7 +295,7 @@ jobs:
docker info | grep "Docker Root Dir"

- name: Build Docker Image
run: docker build -f Dockerfile-localnet -t localnet .
run: docker build -f Dockerfile-localnet --build-arg BUILT_IN_CI="Boom shakalaka" -t localnet .

- name: Save Docker Image as Tar
run: docker save -o /mnt/data/subtensor-localnet.tar localnet
Expand All @@ -162,31 +316,18 @@ jobs:
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 16
max-parallel: 32
matrix:
rust-branch:
- stable
rust-target:
- x86_64-unknown-linux-gnu
os:
- ubuntu-latest
test-file: ${{ fromJson(needs.find-btcli-e2e-tests.outputs.test-files) }}

env:
RELEASE_NAME: development
RUSTV: ${{ matrix.rust-branch }}
RUST_BACKTRACE: full
RUST_BIN_DIR: target/${{ matrix.rust-target }}
TARGET: ${{ matrix.rust-target }}
include: ${{ fromJson(needs.find-btcli-e2e-tests.outputs.test-files) }}

timeout-minutes: 60
name: "cli: ${{ matrix.test-file }}"
name: "cli: ${{ matrix.label }}"
steps:
- name: Check-out repository
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}

- name: Install uv
uses: astral-sh/setup-uv@v5
Expand Down Expand Up @@ -230,7 +371,7 @@ jobs:
set +e
for i in 1 2; do
echo "🔁 Attempt $i: Running tests"
uv run pytest ${{ matrix.test-file }} -s
uv run pytest "${{ matrix.nodeid }}" -s
status=$?
if [ $status -eq 0 ]; then
echo "✅ Tests passed on attempt $i"
Expand All @@ -256,31 +397,18 @@ jobs:
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 16
max-parallel: 64
matrix:
rust-branch:
- stable
rust-target:
- x86_64-unknown-linux-gnu
os:
- ubuntu-latest
test-file: ${{ fromJson(needs.find-sdk-e2e-tests.outputs.test-files) }}

env:
RELEASE_NAME: development
RUSTV: ${{ matrix.rust-branch }}
RUST_BACKTRACE: full
RUST_BIN_DIR: target/${{ matrix.rust-target }}
TARGET: ${{ matrix.rust-target }}
include: ${{ fromJson(needs.find-sdk-e2e-tests.outputs.test-files) }}

timeout-minutes: 60
name: "sdk: ${{ matrix.test-file }}"
name: "sdk: ${{ matrix.label }}"
steps:
- name: Check-out repository
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name || github.repository }}
ref: ${{ github.event.pull_request.head.ref || github.ref_name }}

- name: Install uv
uses: astral-sh/setup-uv@v5
Expand Down Expand Up @@ -324,7 +452,7 @@ jobs:
set +e
for i in 1 2; do
echo "🔁 Attempt $i: Running tests"
uv run pytest ${{ matrix.test-file }} -s
uv run pytest "${{ matrix.nodeid }}" -s
status=$?
if [ $status -eq 0 ]; then
echo "✅ Tests passed on attempt $i"
Expand Down
19 changes: 17 additions & 2 deletions .github/workflows/check-rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
- name: Install Rust Nightly
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
toolchain: stable
components: rustfmt

- name: Utilize Shared Rust Cache
Expand All @@ -48,7 +48,22 @@ jobs:
cache-on-failure: true

- name: cargo fmt
run: cargo +nightly fmt --check --all
run: |
set -euo pipefail
# Run cargo fmt and capture both stdout and stderr
output=$(cargo fmt --check --all 2>&1) || {
echo "❌ cargo fmt failed with non-zero exit code"
echo "$output"
exit 1
}
# Check for panic/ICE messages even if exit code was 0
if echo "$output" | grep -qiE "(the compiler unexpectedly panicked|panicked at|Internal Compiler Error|ICE|error: the compiler unexpectedly panicked)"; then
echo "❌ rustfmt panicked (ICE detected) - this should fail the build"
echo "$output"
exit 1
fi
echo "$output"
echo "✅ cargo fmt completed successfully"

cargo-clippy-default-features:
name: cargo clippy
Expand Down
Loading
Loading