name: Rust ZK Components Tests on: push: branches: [main, develop] paths: - 'dev/gpu/gpu_zk_research/**' - '.gitea/workflows/rust-zk-tests.yml' pull_request: branches: [main, develop] workflow_dispatch: concurrency: group: rust-zk-tests-${{ github.ref }} cancel-in-progress: true jobs: test-rust-zk: runs-on: debian timeout-minutes: 15 steps: - name: Clone repository run: | WORKSPACE="/var/lib/aitbc-workspaces/rust-zk-tests" rm -rf "$WORKSPACE" mkdir -p "$WORKSPACE" cd "$WORKSPACE" git clone --depth 1 http://gitea.bubuit.net:3000/oib/aitbc.git repo - name: Setup Rust environment run: | cd /var/lib/aitbc-workspaces/rust-zk-tests/repo # Ensure standard directories exist mkdir -p /var/lib/aitbc/data /var/lib/aitbc/keystore /etc/aitbc /var/log/aitbc export HOME=/root export RUSTUP_HOME="$HOME/.rustup" export CARGO_HOME="$HOME/.cargo" export PATH="$CARGO_HOME/bin:$PATH" if ! command -v rustup >/dev/null 2>&1; then echo "Installing Rust..." curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y fi source "$CARGO_HOME/env" rustup default stable rustc --version cargo --version rustup component add rustfmt clippy - name: Check formatting run: | export HOME=/root export PATH="$HOME/.cargo/bin:$PATH" source "$HOME/.cargo/env" 2>/dev/null || true cd /var/lib/aitbc-workspaces/rust-zk-tests/repo/dev/gpu/gpu_zk_research cargo fmt --all -- --check echo "✅ Formatting OK" - name: Run Clippy run: | export HOME=/root export PATH="$HOME/.cargo/bin:$PATH" source "$HOME/.cargo/env" 2>/dev/null || true cd /var/lib/aitbc-workspaces/rust-zk-tests/repo/dev/gpu/gpu_zk_research cargo clippy --all-targets -- -D warnings echo "✅ Clippy OK" - name: Build run: | export HOME=/root export PATH="$HOME/.cargo/bin:$PATH" source "$HOME/.cargo/env" 2>/dev/null || true cd /var/lib/aitbc-workspaces/rust-zk-tests/repo/dev/gpu/gpu_zk_research cargo build --release echo "✅ Build completed" - name: Run tests run: | export HOME=/root export PATH="$HOME/.cargo/bin:$PATH" source "$HOME/.cargo/env" 2>/dev/null || true cd /var/lib/aitbc-workspaces/rust-zk-tests/repo/dev/gpu/gpu_zk_research cargo test --all-targets echo "✅ Tests passed" - name: Cleanup if: always() run: rm -rf /var/lib/aitbc-workspaces/rust-zk-tests