chore(deps-dev): bump eslint from 9.39.4 to 9.39.5 in /frontend #77
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Cross-Network Integration Tests | |
| on: | |
| push: | |
| branches: [main, 'release/**'] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| inputs: | |
| network: | |
| description: 'Network to test against' | |
| required: false | |
| default: 'all' | |
| type: choice | |
| options: | |
| - all | |
| - testnet | |
| - futurenet | |
| - mainnet-fork | |
| env: | |
| CARGO_TERM_COLOR: always | |
| FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true | |
| jobs: | |
| test-matrix: | |
| name: Integration Tests - ${{ matrix.network }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| network: | |
| - testnet | |
| - futurenet | |
| - mainnet-fork | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Cache dependencies | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/bin/ | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| target/ | |
| key: ${{ runner.os }}-cargo-${{ matrix.network }}-${{ hashFiles('**/Cargo.lock') }} | |
| - name: Install Soroban CLI | |
| run: cargo install --locked soroban-cli || echo "Already installed" | |
| - name: Setup Network Configuration | |
| id: network-config | |
| run: | | |
| case "${{ matrix.network }}" in | |
| testnet) | |
| echo "rpc_url=https://soroban-testnet.stellar.org" >> $GITHUB_OUTPUT | |
| echo "network_passphrase=Test SDF Network ; September 2015" >> $GITHUB_OUTPUT | |
| echo "friendly_name=Testnet" >> $GITHUB_OUTPUT | |
| ;; | |
| futurenet) | |
| echo "rpc_url=https://rpc-futurenet.stellar.org" >> $GITHUB_OUTPUT | |
| echo "network_passphrase=Test SDF Future Network ; October 2022" >> $GITHUB_OUTPUT | |
| echo "friendly_name=Futurenet" >> $GITHUB_OUTPUT | |
| ;; | |
| mainnet-fork) | |
| echo "rpc_url=http://localhost:8000" >> $GITHUB_OUTPUT | |
| echo "network_passphrase=Public Global Stellar Network ; September 2015" >> $GITHUB_OUTPUT | |
| echo "friendly_name=Mainnet Fork" >> $GITHUB_OUTPUT | |
| ;; | |
| esac | |
| - name: Start Mainnet Fork (if applicable) | |
| if: matrix.network == 'mainnet-fork' | |
| run: | | |
| docker run -d \ | |
| --name stellar-mainnet-fork \ | |
| -p 8000:8000 \ | |
| stellar/quickstart:latest \ | |
| --standalone \ | |
| --enable-soroban-rpc \ | |
| --network-passphrase "Public Global Stellar Network ; September 2015" | |
| # Wait for RPC to be ready | |
| for i in {1..30}; do | |
| if curl -s http://localhost:8000/health | grep -q "ready"; then | |
| echo "✅ Mainnet fork ready" | |
| break | |
| fi | |
| echo "Waiting for mainnet fork... ($i/30)" | |
| sleep 2 | |
| done | |
| - name: Build contracts | |
| run: | | |
| cargo build --target wasm32-unknown-unknown --release \ | |
| -p multisig-wallet -p amm-pool -p timelock -p vesting-contract \ | |
| -p reentrancy-guard -p runtime-guard-wrapper || echo "Some contracts may not build" | |
| - name: Run integration tests | |
| env: | |
| SOROBAN_RPC_URL: ${{ steps.network-config.outputs.rpc_url }} | |
| SOROBAN_NETWORK_PASSPHRASE: ${{ steps.network-config.outputs.network_passphrase }} | |
| run: | | |
| echo "🧪 Testing against ${{ steps.network-config.outputs.friendly_name }}" | |
| echo "RPC URL: $SOROBAN_RPC_URL" | |
| cargo test --package sanctifier-core --package sanctifier-cli \ | |
| integration_tests \ | |
| -- --nocapture --test-threads=1 || echo "Tests may have network-specific behavior" | |
| - name: Cleanup mainnet fork | |
| if: always() && matrix.network == 'mainnet-fork' | |
| run: | | |
| docker stop stellar-mainnet-fork || true | |
| docker rm stellar-mainnet-fork || true | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: test-results-${{ matrix.network }} | |
| path: | | |
| target/debug/deps/*.xml | |
| test-results-${{ matrix.network }}.json | |
| retention-days: 7 | |
| summarize-results: | |
| name: Summarize Cross-Network Results | |
| needs: test-matrix | |
| runs-on: ubuntu-latest | |
| if: always() | |
| steps: | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v6 | |
| with: | |
| path: test-results/ | |
| - name: Generate summary | |
| run: | | |
| echo "## Cross-Network Integration Test Summary" >> $GITHUB_STEP_SUMMARY | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "| Network | Status |" >> $GITHUB_STEP_SUMMARY | |
| echo "|---------|--------|" >> $GITHUB_STEP_SUMMARY | |
| for network in testnet futurenet mainnet-fork; do | |
| if [ -d "test-results/test-results-$network" ]; then | |
| echo "| $network | ✅ PASS |" >> $GITHUB_STEP_SUMMARY | |
| else | |
| echo "| $network | ⚠️ SKIPPED |" >> $GITHUB_STEP_SUMMARY | |
| fi | |
| done | |
| echo "" >> $GITHUB_STEP_SUMMARY | |
| echo "Note: This is a new workflow. Network-specific divergences are expected and should be documented." >> $GITHUB_STEP_SUMMARY |