Skip to content

馃悰 fix(auth): rehash legacy verifiers (#1787) #2887

馃悰 fix(auth): rehash legacy verifiers (#1787)

馃悰 fix(auth): rehash legacy verifiers (#1787) #2887

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 cargo: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
outputs:
baseline: ${{ steps.baseline.outputs.sha }}
packages: ${{ steps.packages.outputs.value }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
- uses: ./.github/actions/setup
with:
tools: >-
just jq uv cargo:cargo-dist cargo:cargo-insta cargo:cargo-nextest
- id: baseline
env:
GH_TOKEN: ${{ github.token }}
run: |
sha=$(gh api "/repos/$GITHUB_REPOSITORY/actions/workflows/ci.yml/runs?branch=main&status=success&per_page=1" \
--jq '.workflow_runs[0].head_sha // empty')
test -n "$sha"
echo "sha=$sha" >> "$GITHUB_OUTPUT"
- run: just snapshots
- id: packages
run: echo "value=$(just publishable-packages)" >> "$GITHUB_OUTPUT"
- run: just release-plan
semver:
name: semver (${{ matrix.package }})
needs: contracts
env:
CARGO_HTTP_MULTIPLEXING: "false"
strategy:
fail-fast: false
matrix:
package: ${{ fromJSON(needs.contracts.outputs.packages) }}
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:
cache-targets: false
tools: just cargo:cargo-semver-checks
- run: just semver-package "$PACKAGE" "$BASE_REV"
env:
PACKAGE: ${{ matrix.package }}
BASE_REV: ${{ needs.contracts.outputs.baseline }}
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 cargo:cargo-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 cargo:cargo-llvm-cov cargo:cargo-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 cargo:cargo-llvm-cov cargo:cargo-nextest
github:leptos-rs/cargo-leptos
- run: just frontend-deps
- run: just frontend-browser-deps --with-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
env:
PUPPETEER_EXECUTABLE_PATH: /usr/bin/google-chrome
PUPPETEER_SKIP_DOWNLOAD: "true"
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, semver, 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.semver.result != 'success' || needs.source.result != 'success'
run: exit 1