feat(redis): Redis Backed Taskbroker #1319
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: CI | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| branches: ["main"] | |
| env: | |
| RUSTFLAGS: -Dwarnings | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 | |
| - name: Get changed files | |
| id: changes | |
| uses: dorny/paths-filter@0bc4621a3135347011ad047f9ecf449bf72ce2bd # v3.0.0 | |
| with: | |
| list-files: json | |
| filters: | | |
| all: | |
| - added|modified: '**/*' | |
| - name: Install cmake | |
| uses: lukka/get-cmake@28983e0d3955dba2bb0a6810caae0c6cf268ec0c # latest | |
| - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| components: clippy, rustfmt | |
| - uses: swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2 | |
| - name: Run Rustfmt | |
| run: make style | |
| - name: Run Clippy | |
| run: make lint | |
| - uses: astral-sh/setup-uv@884ad927a57e558e7a70b92f2bccf9198a4be546 # v6 | |
| with: | |
| version: '0.8.2' | |
| # we just cache the venv-dir directly in action-setup-venv | |
| enable-cache: false | |
| - uses: getsentry/action-setup-venv@3a832a9604b3e1a4202ae559248f26867b467cc7 # v2.1.1 | |
| with: | |
| python-version: 3.12.11 | |
| cache-dependency-path: uv.lock | |
| install-cmd: uv sync --frozen --only-dev --active | |
| - uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 | |
| with: | |
| path: ~/.cache/pre-commit | |
| key: cache-epoch-1|${{ env.pythonLocation }}|${{ hashFiles('.pre-commit-config.yaml', 'uv.lock') }} | |
| - name: Install pre-commit | |
| run: pre-commit install-hooks | |
| - name: Run pre-commit | |
| run: | | |
| jq '.[]' --raw-output <<< '${{steps.changes.outputs.all_files}}' | | |
| xargs pre-commit run --files | |
| test: | |
| name: Tests (ubuntu) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
| - uses: astral-sh/setup-uv@884ad927a57e558e7a70b92f2bccf9198a4be546 # v6 | |
| with: | |
| version: '0.8.2' | |
| # we just cache the venv-dir directly in action-setup-venv | |
| enable-cache: false | |
| - uses: getsentry/action-setup-venv@3a832a9604b3e1a4202ae559248f26867b467cc7 # v2.1.1 | |
| with: | |
| python-version: 3.12.11 | |
| cache-dependency-path: uv.lock | |
| install-cmd: uv sync --frozen --only-dev --active | |
| - name: Start services | |
| id: setup | |
| run: | | |
| devservices up | |
| - name: Install cmake | |
| uses: lukka/get-cmake@28983e0d3955dba2bb0a6810caae0c6cf268ec0c # latest | |
| - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| - uses: swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b # pin@v1 | |
| with: | |
| key: ${{ github.job }} | |
| - name: Run unit tests | |
| run: | | |
| make unit-test | |
| coverage: | |
| name: Coverage (ubuntu) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
| - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| - uses: taiki-e/install-action@a48a50298f98c47e46a957ae6f82c44cc4878e42 # v2 | |
| with: | |
| tool: cargo-llvm-cov | |
| - name: Install cmake | |
| uses: lukka/get-cmake@28983e0d3955dba2bb0a6810caae0c6cf268ec0c # latest | |
| - uses: swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b # pin@v1 | |
| with: | |
| key: ${{ github.job }} | |
| - uses: astral-sh/setup-uv@884ad927a57e558e7a70b92f2bccf9198a4be546 # v6 | |
| with: | |
| version: '0.8.2' | |
| # we just cache the venv-dir directly in action-setup-venv | |
| enable-cache: false | |
| - uses: getsentry/action-setup-venv@3a832a9604b3e1a4202ae559248f26867b467cc7 # v2.1.1 | |
| with: | |
| python-version: 3.12.11 | |
| cache-dependency-path: uv.lock | |
| install-cmd: uv sync --frozen --only-dev --active | |
| - name: Start services | |
| run: devservices up | |
| - name: Run coverage | |
| run: cargo llvm-cov --all-features --lcov --output-path lcov.info | |
| - uses: codecov/codecov-action@0565863a31f2c772f9f0395002a31e3f06189574 # v5 | |
| with: | |
| files: lcov.info | |
| slug: getsentry/taskbroker | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| rebalance-integration-test: | |
| name: Rebalance integration test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
| - name: Install cmake | |
| uses: lukka/get-cmake@28983e0d3955dba2bb0a6810caae0c6cf268ec0c # latest | |
| - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| - uses: swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b # pin@v1 | |
| with: | |
| key: ${{ github.job }} | |
| - uses: astral-sh/setup-uv@884ad927a57e558e7a70b92f2bccf9198a4be546 # v6 | |
| with: | |
| version: '0.8.2' | |
| # we just cache the venv-dir directly in action-setup-venv | |
| enable-cache: false | |
| - uses: getsentry/action-setup-venv@3a832a9604b3e1a4202ae559248f26867b467cc7 # v2.1.1 | |
| with: | |
| python-version: 3.12.11 | |
| cache-dependency-path: uv.lock | |
| install-cmd: uv sync --frozen --only-dev --active | |
| - name: Run rebalance integration test | |
| run: | | |
| make test-rebalance | |
| worker-processing-integration-test: | |
| name: Worker processing integration test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
| - name: Install cmake | |
| uses: lukka/get-cmake@28983e0d3955dba2bb0a6810caae0c6cf268ec0c # latest | |
| - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| - uses: swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b # pin@v1 | |
| with: | |
| key: ${{ github.job }} | |
| - uses: astral-sh/setup-uv@884ad927a57e558e7a70b92f2bccf9198a4be546 # v6 | |
| with: | |
| version: '0.8.2' | |
| # we just cache the venv-dir directly in action-setup-venv | |
| enable-cache: false | |
| - uses: getsentry/action-setup-venv@3a832a9604b3e1a4202ae559248f26867b467cc7 # v2.1.1 | |
| with: | |
| python-version: 3.12.11 | |
| cache-dependency-path: uv.lock | |
| install-cmd: uv sync --frozen --only-dev --active | |
| - name: Run worker processing integration test | |
| run: | | |
| make test-worker-processing | |
| upkeep-retry-integration-test: | |
| name: Upkeep retry integration test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
| - name: Install cmake | |
| uses: lukka/get-cmake@28983e0d3955dba2bb0a6810caae0c6cf268ec0c # latest | |
| - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| - uses: swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b # pin@v1 | |
| with: | |
| key: ${{ github.job }} | |
| - uses: astral-sh/setup-uv@884ad927a57e558e7a70b92f2bccf9198a4be546 # v6 | |
| with: | |
| version: '0.8.2' | |
| # we just cache the venv-dir directly in action-setup-venv | |
| enable-cache: false | |
| - uses: getsentry/action-setup-venv@3a832a9604b3e1a4202ae559248f26867b467cc7 # v2.1.1 | |
| with: | |
| python-version: 3.12.11 | |
| cache-dependency-path: uv.lock | |
| install-cmd: uv sync --frozen --only-dev --active | |
| - name: Run upkeep retry integration test | |
| run: | | |
| make test-upkeep-retry | |
| upkeep-expiry-integration-test: | |
| name: Upkeep expiry integration test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
| - name: Install cmake | |
| uses: lukka/get-cmake@28983e0d3955dba2bb0a6810caae0c6cf268ec0c # latest | |
| - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| - uses: swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b # pin@v1 | |
| with: | |
| key: ${{ github.job }} | |
| - uses: astral-sh/setup-uv@884ad927a57e558e7a70b92f2bccf9198a4be546 # v6 | |
| with: | |
| version: '0.8.2' | |
| # we just cache the venv-dir directly in action-setup-venv | |
| enable-cache: false | |
| - uses: getsentry/action-setup-venv@3a832a9604b3e1a4202ae559248f26867b467cc7 # v2.1.1 | |
| with: | |
| python-version: 3.12.11 | |
| cache-dependency-path: uv.lock | |
| install-cmd: uv sync --frozen --only-dev --active | |
| - name: Run upkeep expiry integration test | |
| run: | | |
| make test-upkeep-expiry | |
| upkeep-delay-integration-test: | |
| name: Upkeep delay integration test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
| - name: Install cmake | |
| uses: lukka/get-cmake@28983e0d3955dba2bb0a6810caae0c6cf268ec0c # latest | |
| - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| - uses: swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b # pin@v1 | |
| with: | |
| key: ${{ github.job }} | |
| - uses: astral-sh/setup-uv@884ad927a57e558e7a70b92f2bccf9198a4be546 # v6 | |
| with: | |
| version: '0.8.2' | |
| # we just cache the venv-dir directly in action-setup-venv | |
| enable-cache: false | |
| - uses: getsentry/action-setup-venv@3a832a9604b3e1a4202ae559248f26867b467cc7 # v2.1.1 | |
| with: | |
| python-version: 3.12.11 | |
| cache-dependency-path: uv.lock | |
| install-cmd: uv sync --frozen --only-dev --active | |
| - name: Run upkeep delay integration test | |
| run: | | |
| make test-upkeep-delay | |
| failed-tasks-integration-test: | |
| name: Failed tasks integration test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2 | |
| - name: Install cmake | |
| uses: lukka/get-cmake@28983e0d3955dba2bb0a6810caae0c6cf268ec0c # latest | |
| - uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af # pin@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| - uses: swatinem/rust-cache@81d053bdb0871dcd3f10763c8cc60d0adc41762b # pin@v1 | |
| with: | |
| key: ${{ github.job }} | |
| - uses: astral-sh/setup-uv@884ad927a57e558e7a70b92f2bccf9198a4be546 # v6 | |
| with: | |
| version: '0.8.2' | |
| # we just cache the venv-dir directly in action-setup-venv | |
| enable-cache: false | |
| - uses: getsentry/action-setup-venv@3a832a9604b3e1a4202ae559248f26867b467cc7 # v2.1.1 | |
| with: | |
| python-version: 3.12.11 | |
| cache-dependency-path: uv.lock | |
| install-cmd: uv sync --frozen --only-dev --active | |
| - name: Run failed tasks integration test | |
| run: | | |
| make test-failed-tasks |