resend-rs 0.29.0

Resend's Official Rust SDK.
Documentation
name: Build & Tests

on:
  push:
    branches: [main]
    tags-ignore:
      - "**"

env:
  CARGO_TERM_COLOR: always

permissions:
  contents: read

concurrency:
  group: ci/${{ github.ref }}
  cancel-in-progress: true

jobs:
  x86_64-unknown-linux-gnu:
    runs-on: ubuntu-24.04
    timeout-minutes: 30
    steps:
      - name: Checkout
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
        with:
          targets: x86_64-unknown-linux-gnu

      - name: Use cached dependencies
        uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
        with:
          key: "ubuntu-24.04-x86_64-unknown-linux-gnu-${{ hashFiles('**/Cargo.lock') }}"

      - name: Build
        run: cargo build --verbose

      - name: Test
        run: cargo --verbose t
        env:
          RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}

  aarch64-unknown-linux-gnu:
    needs: [x86_64-unknown-linux-gnu]
    runs-on: ubuntu-24.04
    timeout-minutes: 30
    steps:
      - name: Checkout
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
        with:
          targets: aarch64-unknown-linux-gnu

      - name: Use cached dependencies
        uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
        with:
          key: "ubuntu-24.04-aarch64-unknown-linux-gnu-${{ hashFiles('**/Cargo.lock') }}"

      - name: Build
        run: cargo build --verbose

      - name: Test
        run: cargo --verbose t
        env:
          RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}

  x86_64-apple-darwin:
    needs: [aarch64-unknown-linux-gnu, x86_64-unknown-linux-gnu]
    runs-on: macos-26
    timeout-minutes: 30
    steps:
      - name: Checkout
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
        with:
          targets: x86_64-apple-darwin

      - name: Use cached dependencies
        uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
        with:
          key: "macos-15-x86_64-apple-darwin-${{ hashFiles('**/Cargo.lock') }}"

      - name: Build
        run: cargo build --verbose

      - name: Test
        run: cargo --verbose t
        env:
          RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}

  x86_64-pc-windows-msvc:
    needs:
      [aarch64-unknown-linux-gnu, x86_64-unknown-linux-gnu, x86_64-apple-darwin]
    runs-on: macos-26
    timeout-minutes: 30
    steps:
      - name: Checkout
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 # stable
        with:
          targets: x86_64-pc-windows-msvc

      - name: Use cached dependencies
        uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
        with:
          key: "windows-2022-x86_64-pc-windows-msvc-${{ hashFiles('**/Cargo.lock') }}"

      - name: Build
        run: cargo build --verbose

      - name: Test
        run: cargo --verbose t
        env:
          RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}