zone-update 0.11.0

A library of CRUD-like operations on DNS zones for multiple providers
Documentation
name: Tests

on: [push]

env:
  DNSIMPLE_TEST_DOMAIN: ${{ secrets.DNSIMPLE_TEST_DOMAIN }}
  DNSIMPLE_TOKEN: ${{ secrets.DNSIMPLE_TOKEN }}
  DIGITALOCEAN_TEST_DOMAIN: ${{ secrets.DIGITALOCEAN_TEST_DOMAIN }}
  DIGITALOCEAN_API_KEY: ${{ secrets.DIGITALOCEAN_API_KEY }}

jobs:

  linux:
    runs-on: ubuntu-latest

    strategy:
      matrix:
        # A couple of providers that are 'known good' for testing
        provider: [dnsimple, digitalocean]


    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@v2

      # Most providers don't handle parallel updates so run everything in series
      - name: Run ${{ matrix.provider }} smol tests
        run: cargo test --features test_${{ matrix.provider }},test_smol -- --test-threads=1

      - name: Run ${{ matrix.provider }} tokio tests
        run: cargo test --features test_${{ matrix.provider }},test_tokio -- --test-threads=1

      - name: Run ${{ matrix.provider }} compio tests
        run: cargo test --features test_${{ matrix.provider }},test_compio -- --test-threads=1

      - name: Run ${{ matrix.provider }} monoio tests
        run: cargo test --features test_${{ matrix.provider }},test_monoio -- --test-threads=1

      - name: Run ${{ matrix.provider }} glommio tests
        run: cargo test --features test_${{ matrix.provider }},test_glommio -- --test-threads=1


  # Run these in parallel after Linux but use different providers

  macos:
    needs: linux
    runs-on: macos-latest

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@v2

      - name: Run digitalocean smol tests
        run: cargo test --features test_digitalocean,test_smol -- --test-threads=1


  windows:
    needs: linux
    runs-on: windows-latest

    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@v2

      - name: Run dnsimple tokio tests
        run: cargo test --features test_dnsimple,test_tokio -- --test-threads=1