tideway 0.7.22

A batteries-included Rust web framework built on Axum for building SaaS applications quickly
Documentation
name: Integration load tests

on:
  workflow_dispatch:
    inputs:
      duration:
        description: HTTP workload duration
        default: 30s
        required: false
      concurrency:
        description: Concurrent HTTP workers
        default: "50"
        required: false
      websocket_clients:
        description: WebSocket clients
        default: "1000"
        required: false

permissions:
  contents: read

jobs:
  integration-load:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    steps:
      - name: Checkout
        uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

      - name: Setup Rust
        uses: dtolnay/rust-toolchain@4be7066ada62dd38de10e7b70166bc74ed198c30 # stable
        with:
          toolchain: stable

      - name: Cache cargo artifacts
        uses: Swatinem/rust-cache@42dc69e1aa15d09112580998cf2ef0119e2e91ae # v2

      - name: Install oha
        run: cargo install oha --version 1.14.0 --locked

      - name: Run integration workloads
        env:
          DURATION: ${{ inputs.duration || '30s' }}
          CONCURRENCY: ${{ inputs.concurrency || '50' }}
          WS_CLIENTS: ${{ inputs.websocket_clients || '1000' }}
          RESULTS_DIR: load-tests/results/ci
        run: ./scripts/load-test.sh

      - name: Upload results
        if: always()
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
        with:
          name: tideway-load-results
          path: load-tests/results/ci