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
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 with:
targets: x86_64-unknown-linux-gnu
- name: Use cached dependencies
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 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
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 with:
targets: aarch64-unknown-linux-gnu
- name: Use cached dependencies
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 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
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 with:
targets: x86_64-apple-darwin
- name: Use cached dependencies
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 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
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 with:
targets: x86_64-pc-windows-msvc
- name: Use cached dependencies
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 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 }}