name: Rust CI/CD
on:
push:
branches: [main, develop]
tags:
- "v*"
pull_request:
branches: [main, develop]
schedule:
- cron: "0 0 * * 0"
permissions:
contents: write
pull-requests: write
id-token: write
jobs:
quality:
name: Quality
uses: ./.github/workflows/ci-quality.yml
tests:
name: Tests
uses: ./.github/workflows/ci-tests.yml
publish:
name: Publish
if: startsWith(github.ref, 'refs/tags/v')
needs: [quality, tests]
uses: ./.github/workflows/publish-release.yml
secrets:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
benchmarks:
name: Benchmarks
if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'schedule'
needs: [quality, tests]
uses: ./.github/workflows/benchmarks.yml