rfd 0.17.2

Rusty File Dialog
Documentation
name: Rust

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        include:
          - name: Ubuntu GTK
            os: ubuntu-latest
            target: x86_64-unknown-linux-gnu
            flags: '--no-default-features --features gtk3'
          - name: Ubuntu XDG
            os: ubuntu-latest
            target: x86_64-unknown-linux-gnu
            flags: '--no-default-features --features xdg-portal'
          - name: Ubuntu XDG aarch64
            os: ubuntu-24.04-arm
            target: aarch64-unknown-linux-gnu
            flags: '--no-default-features --features xdg-portal'
          - name: Windows
            os: windows-latest
            target: x86_64-pc-windows-msvc
            flags: ''
          - name: Windows CC6
            os: windows-latest
            target: x86_64-pc-windows-msvc
            flags: '--features common-controls-v6'
          - name: macOS
            os: macos-latest
            target: aarch64-apple-darwin
            flags: ''
          - name: WASM32
            os: ubuntu-latest
            target: wasm32-unknown-unknown
            flags: ''

    name: ${{ matrix.name }}
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v3
    - name: "[Ubuntu GTK] install dependencies"
      if: matrix.name == 'Ubuntu GTK'
      run: sudo apt update && sudo apt install libgtk-3-dev
    - name: "[Ubuntu XDG] install dependencies"
      if: startsWith(matrix.name, 'Ubuntu XDG')
      run: sudo apt update && sudo apt install libwayland-dev
    - name: "[WASM] rustup"
      if: matrix.name == 'WASM32'
      run: rustup target add wasm32-unknown-unknown
    - uses: Swatinem/rust-cache@v2
    - name: Build
      run: cargo build --target ${{ matrix.target }} ${{ matrix.flags }}
    - name: Test
      # FIXME
      if: matrix.name != 'WASM32'
      run: cargo test --target ${{ matrix.target }} ${{ matrix.flags }}