rustica 0.12.0

Rustica is a functional programming library for the Rust language.
Documentation
name: Rust CI/CD

on:
  push:
    branches: [main, develop]
    tags:
      - "v*"
  pull_request:
    branches: [main, develop]
  schedule:
    - cron: "0 0 * * 0" # Weekly dependency check

permissions:
  contents: write
  pull-requests: write
  id-token: write

jobs:
  # 1. Quality
  quality:
    name: Quality
    uses: ./.github/workflows/ci-quality.yml

  # 2. Tests
  tests:
    name: Tests
    uses: ./.github/workflows/ci-tests.yml

  # 3. Publish and Release (only when tag is pushed)
  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 }}

  # 4. Benchmarks (only when tag is pushed or schedule)
  benchmarks:
    name: Benchmarks
    if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'schedule'
    needs: [quality, tests]
    uses: ./.github/workflows/benchmarks.yml