tauri-plugin-notifications 0.4.5

A Tauri v2 plugin for sending notifications on desktop and mobile platforms with support for system notifications and push delivery via FCM and APNs.
Documentation
name: Checks

on: [ pull_request, push ]

jobs:
  # Code formatting.
  fmt:
    name: cargo-fmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo fmt --all -- --check

  prettier:
    name: prettier
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: pnpm/action-setup@v6
        with:
          run_install: false
      - uses: actions/setup-node@v6
        with:
          node-version: "20"
          cache: "pnpm"
      - run: pnpm install
      - run: pnpm run format:check

  # Static analyzer.
  clippy:
    name: cargo-clippy (${{ matrix.os }})
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
    steps:
      - uses: awalsh128/cache-apt-pkgs-action@latest
        if: matrix.os == 'ubuntu-latest'
        with:
          packages: libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf llvm-dev clang cmake grcov
          version: "1.0"  # bump this to invalidate the cache when needed

      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
      - run: cargo clippy --all-targets --all-features -- -D warnings -D clippy::unwrap_used

  # Static analyzer for mobile targets.
  clippy-mobile:
    name: cargo-clippy (${{ matrix.target }})
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        include:
          - target: aarch64-linux-android
            os: ubuntu-latest
          - target: aarch64-apple-ios
            os: macos-latest
    steps:
      - uses: actions/checkout@v6
      - uses: dtolnay/rust-toolchain@stable
        with:
          targets: ${{ matrix.target }}
      - run: cargo clippy --lib --target ${{ matrix.target }} --all-features -- -D warnings -D clippy::unwrap_used

  # Spellcheck.
  spellcheck:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: streetsidesoftware/cspell-action@v8
        with:
          files: "**/*.{rs,md}"

  # cargo-deny.
  deny:
    name: cargo-deny
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: EmbarkStudios/cargo-deny-action@v2

  # cargo-semver.
  semver:
    name: cargo-semver
    runs-on: ubuntu-latest
    steps:
      - uses: awalsh128/cache-apt-pkgs-action@latest
        with:
          packages: libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf llvm-dev clang cmake grcov
          version: "1.0"  # bump this to invalidate the cache when needed

      - uses: actions/checkout@v6
      - uses: obi1kenobi/cargo-semver-checks-action@v2