diff --git a/.github/workflows/volume-server-integration-tests.yml b/.github/workflows/volume-server-integration-tests.yml index 5c278d13d..1311140a1 100644 --- a/.github/workflows/volume-server-integration-tests.yml +++ b/.github/workflows/volume-server-integration-tests.yml @@ -9,6 +9,7 @@ on: - 'weed/storage/**' - 'weed/pb/volume_server.proto' - 'weed/pb/volume_server_pb/**' + - 'rust/volume_server/**' - '.github/workflows/volume-server-integration-tests.yml' push: branches: [ master, main ] @@ -18,6 +19,7 @@ on: - 'weed/storage/**' - 'weed/pb/volume_server.proto' - 'weed/pb/volume_server_pb/**' + - 'rust/volume_server/**' - '.github/workflows/volume-server-integration-tests.yml' concurrency: @@ -120,3 +122,49 @@ jobs: echo "## Volume Server Integration Test Summary (${{ matrix.test-type }} - Shard ${{ matrix.shard }})" >> "$GITHUB_STEP_SUMMARY" echo "- Suite: test/volume_server/${{ matrix.test-type }} (Pattern: ${TEST_PATTERN})" >> "$GITHUB_STEP_SUMMARY" echo "- Command: go test -v -count=1 -timeout=${{ env.TEST_TIMEOUT }} ./test/volume_server/${{ matrix.test-type }}/... -run \"${TEST_PATTERN}\"" >> "$GITHUB_STEP_SUMMARY" + + volume-server-rust-smoke: + name: Volume Server Rust Smoke + runs-on: ubuntu-22.04 + timeout-minutes: 40 + + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Set up Go ${{ env.GO_VERSION }} + uses: actions/setup-go@v6 + with: + go-version: ${{ env.GO_VERSION }} + + - name: Set up Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Build SeaweedFS binary + run: | + cd weed + go build -o weed . + chmod +x weed + ./weed version + + - name: Run Rust-mode HTTP smoke tests + env: + WEED_BINARY: ${{ github.workspace }}/weed/weed + VOLUME_SERVER_IMPL: rust + run: | + go test -v -count=1 -timeout=25m ./test/volume_server/http/... -run "TestAdminStatusAndHealthz|TestUploadReadRangeHeadDeleteRoundTrip" + + - name: Run Rust-mode gRPC smoke tests + env: + WEED_BINARY: ${{ github.workspace }}/weed/weed + VOLUME_SERVER_IMPL: rust + run: | + go test -v -count=1 -timeout=25m ./test/volume_server/grpc/... -run "TestStateAndStatusRPCs|TestVolumeSyncStatusAndReadVolumeFileStatus" + + - name: Rust smoke summary + if: always() + run: | + echo "## Volume Server Rust Smoke Summary" >> "$GITHUB_STEP_SUMMARY" + echo "- Mode: Go master + Rust volume server launcher (VOLUME_SERVER_IMPL=rust)" >> "$GITHUB_STEP_SUMMARY" + echo "- HTTP Command: go test -v -count=1 -timeout=25m ./test/volume_server/http/... -run \"TestAdminStatusAndHealthz|TestUploadReadRangeHeadDeleteRoundTrip\"" >> "$GITHUB_STEP_SUMMARY" + echo "- gRPC Command: go test -v -count=1 -timeout=25m ./test/volume_server/grpc/... -run \"TestStateAndStatusRPCs|TestVolumeSyncStatusAndReadVolumeFileStatus\"" >> "$GITHUB_STEP_SUMMARY"