Skip to content

馃И test(storage): share one capture subscriber #3657

馃И test(storage): share one capture subscriber

馃И test(storage): share one capture subscriber #3657

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
inputs:
nightly:
description: Run nightly checks
default: false
type: boolean
permissions:
actions: read
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
source:
runs-on: ubuntu-24.04
timeout-minutes: 45
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: ./.github/actions/setup
with:
tools: just aqua:EmbarkStudios/cargo-deny
- run: just lint-source
- run: just lint-deps
automation:
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: ./.github/actions/setup
with:
tools: just node prek
- run: just lint-automation
contracts:
runs-on: ubuntu-24.04
timeout-minutes: 15
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
- uses: ./.github/actions/setup
with:
tools: >-
just jq uv aqua:axodotdev/cargo-dist aqua:mitsuhiko/insta github:nextest-rs/nextest
- run: just snapshots
- run: just release-plan
platform:
name: platform (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [macos-26, windows-2025]
runs-on: ${{ matrix.os }}
timeout-minutes: 60
env:
HOMEBREW_NO_REQUIRE_TAP_TRUST: "1"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: ./.github/actions/setup
with:
tools: just github:nextest-rs/nextest
- run: just platform-test
coverage:
runs-on: ubuntu-24.04
timeout-minutes: 120
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: ./.github/actions/setup
with:
tools: >-
just uv aqua:taiki-e/cargo-llvm-cov github:nextest-rs/nextest
github:Shopify/toxiproxy
- run: just coverage-native
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: always()
with:
name: coverage-native
path: .tox/coverage/native.lcov
if-no-files-found: error
frontend:
runs-on: ubuntu-24.04
timeout-minutes: 60
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: ./.github/actions/setup
with:
components: llvm-tools-preview
targets: wasm32-unknown-unknown
tools: >-
just jq node aqua:taiki-e/cargo-llvm-cov github:nextest-rs/nextest github:leptos-rs/cargo-leptos
- run: just frontend-deps
- name: Install LLVM 22
run: |
curl --fail --location --output "$RUNNER_TEMP/llvm.asc" https://apt.llvm.org/llvm-snapshot.gpg.key
fingerprint=$(gpg --show-keys --with-colons "$RUNNER_TEMP/llvm.asc" | awk -F: '$1 == "fpr" { print $10; exit }')
test "$fingerprint" = 6084F3CF814B57C1CF12EFD515CF4D18AF4F7421
sudo install -m 644 "$RUNNER_TEMP/llvm.asc" /etc/apt/keyrings/llvm.asc
repository='https://apt.llvm.org/noble/ llvm-toolchain-noble-22 main'
echo "deb [signed-by=/etc/apt/keyrings/llvm.asc] $repository" | sudo tee /etc/apt/sources.list.d/llvm.list
sudo apt-get update
sudo apt-get install --yes clang-22 lcov
echo "CLANG=clang-22" >> "$GITHUB_ENV"
- run: just coverage-frontend
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: always()
with:
name: coverage-frontend
path: .tox/coverage/frontend-*.lcov
if-no-files-found: error
docs:
runs-on: ubuntu-24.04
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: ./.github/actions/setup
with:
tools: jq just node prek zola
- run: just lint-docs
- run: just docs
nightly:
if: github.event_name == 'workflow_dispatch' && inputs.nightly
uses: ./.github/workflows/nightly.yml
ci-gate:
if: always()
needs: [automation, contracts, coverage, docs, frontend, platform, source]
runs-on: ubuntu-24.04
timeout-minutes: 5
steps:
- if: >-
needs.automation.result != 'success' || needs.contracts.result != 'success' ||
needs.coverage.result != 'success' || needs.docs.result != 'success' ||
needs.frontend.result != 'success' || needs.platform.result != 'success' ||
needs.source.result != 'success'
run: exit 1