libheif-sys 5.2.0+1.21.2

libheif bindings
Documentation
name: Check and Test

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]
  workflow_dispatch: { }


env:
  CARGO_TERM_COLOR: always


jobs:
  run_tests_on_linux:
    name: Test `cargo check/test` on Ubuntu
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - name: root suid tar
        run: sudo chown root:sudo /bin/tar && sudo chmod u+s /bin/tar

      - name: Cache APT
        id: cache-apt
        uses: actions/cache@v4
        with:
          path: |
            /etc/apt
            /var/lib/apt
          key: ${{ runner.os }}-apt

      - name: Install libheif dependencies
        uses: awalsh128/cache-apt-pkgs-action@v1.4.3
        with:
          packages:
            libheif-dev libdav1d-dev libheif-plugin-aomdec
            libheif-plugin-aomenc libheif-plugin-libde265
            libnuma-dev
          version: 1.17.6

      - uses: Swatinem/rust-cache@v2
        with:
          cache-on-failure: "true"

      - name: Run tests
        run: |
          cargo check -p libheif-sys --features latest,embedded-libheif
          cargo test --features latest,embedded-libheif


  run_tests_on_windows:
    name: Test `cargo check/test` on Windows
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v4

      - name: Cache rust artifacts
        uses: Swatinem/rust-cache@v2
        with:
          cache-all-crates: true
          cache-on-failure: "true"

      - name: Cache vcpkg
        id: cache-vcpkg
        uses: actions/cache@v4
        with:
          path: "target/vcpkg"
          key: ${{ runner.os }}-vcpkg

      - name: Install cargo-vcpkg
        run: cargo install cargo-vcpkg

      - name: Build libheif
        run: cargo vcpkg -v build

      - name: Run tests
        run: |
          cargo check -p libheif-sys --features latest
          cargo test --features latest