encrypted-message 0.3.0

Safely encrypt & store serializable data using AES-256-GCM.
Documentation
name: Lint & run tests
on: [push, pull_request]
env:
  RUSTFLAGS: -D warnings
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - uses: swatinem/rust-cache@v2

      - name: Run Clippy
        run: cargo clippy --all-targets --all-features
  test:
    runs-on: ubuntu-latest
    services:
      mysql:
        image: mysql:8.0
        ports:
          - 3306:3306
        env:
          MYSQL_ROOT_PASSWORD: root
        options: >-
          --health-cmd "mysqladmin ping --silent"
          --health-interval 5s
          --health-timeout 5s
      postgres:
        image: postgres:16-alpine
        ports:
          - 5432:5432
        env:
          POSTGRES_USER: root
          POSTGRES_PASSWORD: root
        options: >-
          --health-cmd pg_isready
          --health-interval 5s
          --health-timeout 5s
    env:
      MYSQL_DATABASE_URL: mysql://root:root@127.0.0.1/test
      POSTGRES_DATABASE_URL: postgres://root:root@127.0.0.1/test
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - uses: swatinem/rust-cache@v2

      - name: Install nextest
        run: curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin

      - name: Install Diesel CLI
        run: cargo install diesel_cli

      - name: Set up diesel-mysql integration test
        working-directory: tests/diesel-mysql
        run: diesel setup --database-url ${{ env.MYSQL_DATABASE_URL }}

      - name: Set up diesel-postgres integration test
        working-directory: tests/diesel-postgres
        run: diesel setup --database-url ${{ env.POSTGRES_DATABASE_URL }}

      - name: Run tests
        run: cargo nextest run --all-features

      - name: Run documentation tests
        run: cargo test --doc --all-features