libarchive2-sys 0.2.0

Low-level FFI bindings to libarchive v3.8.1
Documentation
name: CI

on: [push, pull_request]

permissions:
  contents: read

jobs:
  MacOS:
    runs-on: macos-15
    strategy:
      matrix:
        bs: [autotools, cmake]
    steps:
    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    - name: Install dependencies
      run: ./build/ci/github_actions/install-macos-dependencies.sh
    - name: Autogen
      run: ./build/ci/build.sh -a autogen
      env:
        BS: ${{ matrix.bs }}
    - name: Configure
      run: ./build/ci/build.sh -a configure
      env:
        BS: ${{ matrix.bs }}
        # Avoid using liblzma from the Xcode 16 / MacOSX15.0.sdk, which fails RISCV filter tests.
        CMAKE_ARGS: -D LIBLZMA_LIBRARY=/opt/homebrew/lib/liblzma.dylib -D LIBLZMA_INCLUDE_DIR=/opt/homebrew/include/lzma.h
    - name: Build
      run: ./build/ci/build.sh -a build
      env:
        BS: ${{ matrix.bs }}
        MAKE_ARGS: -j3
    - name: Test
      run: ./build/ci/build.sh -a test
      env:
        BS: ${{ matrix.bs }}
        SKIP_OPEN_FD_ERR_TEST: 1
        IGNORE_TRAVERSALS_TEST4: 1
        MAKE_ARGS: -j3
        CTEST_OUTPUT_ON_FAILURE: ON
    - name: Install
      run: ./build/ci/build.sh -a install
      env:
        BS: ${{ matrix.bs }}
        MAKE_ARGS: -j3
    - name: Artifact
      run: ./build/ci/build.sh -a artifact
      env:
        BS: ${{ matrix.bs }}
    - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
      with:
        name: libarchive-macos-${{ matrix.bs }}-${{ github.sha }}
        path: libarchive.tar.xz

  Ubuntu:
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        bs: [autotools, cmake]
        crypto: [mbedtls, nettle, openssl]
    steps:
    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    - name: Update apt cache
      run: sudo apt-get update
    - name: Install dependencies
      run: sudo apt-get install -y autoconf automake build-essential cmake git libssl-dev nettle-dev libmbedtls-dev libacl1-dev libbz2-dev liblzma-dev liblz4-dev libzstd-dev lzop pkg-config zlib1g-dev
    - name: Autogen
      run: ./build/ci/build.sh -a autogen
      env:
        BS: ${{ matrix.bs }}
    - name: Configure
      run: ./build/ci/build.sh -a configure
      env:
        BS: ${{ matrix.bs }}
        CRYPTO: ${{ matrix.crypto }}
    - name: Build
      run: ./build/ci/build.sh -a build
      env:
        BS: ${{ matrix.bs }}
        MAKE_ARGS: -j4
    - name: Test
      run: ./build/ci/build.sh -a test
      env:
        BS: ${{ matrix.bs }}
        SKIP_OPEN_FD_ERR_TEST: 1
        MAKE_ARGS: -j4
        CTEST_OUTPUT_ON_FAILURE: ON
    - name: Install
      run: ./build/ci/build.sh -a install
      env:
        BS: ${{ matrix.bs }}
    - name: Artifact
      run: ./build/ci/build.sh -a artifact
      env:
        BS: ${{ matrix.bs }}
    - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
      with:
        name: libarchive-ubuntu-${{ matrix.bs }}-${{ matrix.crypto }}-${{ github.sha }}
        path: libarchive.tar.xz
  Ubuntu-distcheck:
    runs-on: ubuntu-24.04
    steps:
    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    - name: Update package definitions
      run: sudo apt-get update
    - name: Install dependencies
      run: sudo apt-get install -y autoconf automake bsdmainutils build-essential cmake ghostscript git groff libssl-dev libacl1-dev libbz2-dev liblzma-dev liblz4-dev libzstd-dev lzop pkg-config zip zlib1g-dev
    - name: Autogen
      run: ./build/ci/build.sh -a autogen
    - name: Configure
      run: ./build/ci/build.sh -a configure
    - name: Distcheck
      run: ./build/ci/build.sh -a distcheck
      env:
        SKIP_OPEN_FD_ERR_TEST: 1
    - name: Dist-Artifact
      run: ./build/ci/build.sh -a dist-artifact
    - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
      with:
        name: libarchive-${{ github.sha }}
        path: libarchive-dist.tar

  Windows:
    runs-on: windows-2022
    strategy:
      fail-fast: false
      matrix:
        be: [mingw-gcc, msvc]
    steps:
    - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
    - name: Install mingw
      if:  ${{ matrix.be=='mingw-gcc' }}
      run: choco install mingw
      shell: cmd
    - name: Install library dependencies
      run: ./build/ci/github_actions/ci.cmd deplibs
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - name: Configure
      run: ./build/ci/github_actions/ci.cmd configure
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - name: Build
      run: ./build/ci/github_actions/ci.cmd build
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - name: Test
      run: ./build/ci/github_actions/ci.cmd test
      shell: cmd
      env:
        BE: ${{ matrix.be }}
        CTEST_OUTPUT_ON_FAILURE: ON
    - name: Install
      run: ./build/ci/github_actions/ci.cmd install
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - name: Artifact
      run: ./build/ci/github_actions/ci.cmd artifact
      shell: cmd
      env:
        BE: ${{ matrix.be }}
    - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
      with:
        name: libarchive-windows-${{ matrix.be }}-${{ github.sha }}
        path: libarchive.zip