torrust-tracker 3.0.0

A feature rich BitTorrent tracker.
Documentation
name: Deployment

on:
  push:
    branches:
      - "releases/**/*"

jobs:
  test:
    name: Test
    runs-on: ubuntu-latest

    strategy:
      matrix:
        toolchain: [nightly, stable]

    steps:
      - id: checkout
        name: Checkout Repository
        uses: actions/checkout@v4

      - id: setup
        name: Setup Toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: ${{ matrix.toolchain }}

      - id: test
        name: Run Unit Tests
        run: cargo test --tests --benches --examples --workspace --all-targets --all-features

  publish:
    name: Publish
    environment: deployment
    needs: test
    runs-on: ubuntu-latest

    steps:
      - id: checkout
        name: Checkout Repository
        uses: actions/checkout@v4

      - id: setup
        name: Setup Toolchain
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: ${{ matrix.toolchain }}

      - id: publish
        name: Publish Crates
        env:
          CARGO_REGISTRY_TOKEN: "${{ secrets.TORRUST_UPDATE_CARGO_REGISTRY_TOKEN }}"
        run: |
          cargo publish -p torrust-tracker-contrib-bencode
          cargo publish -p torrust-tracker-located-error
          cargo publish -p torrust-tracker-primitives
          cargo publish -p torrust-tracker-clock
          cargo publish -p torrust-tracker-configuration
          cargo publish -p torrust-tracker-torrent-repository
          cargo publish -p torrust-tracker-test-helpers
          cargo publish -p torrust-tracker