HEX
Server: nginx/1.18.0
System: Linux mail.dakarash.co.id 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User: www-data (33)
PHP: 8.1.2-1ubuntu2.23
Disabled: NONE
Upload Files
File: //home/django/libpff/.github/workflows/build.yml
# Build from source.
name: build
on: [push, pull_request]
permissions: read-all
jobs:
  build_ubuntu:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        include:
        - architecture: 'x86'
          compiler: 'clang'
          configure_options: ''
        - architecture: 'x64'
          compiler: 'clang'
          configure_options: ''
        - architecture: 'x86'
          compiler: 'gcc'
          configure_options: ''
        - architecture: 'x64'
          compiler: 'gcc'
          configure_options: ''
        - architecture: 'x64'
          compiler: 'gcc'
          configure_options: '--enable-wide-character-type'
        - architecture: 'x64'
          compiler: 'gcc'
          configure_options: '--with-zlib=no'
        - architecture: 'x64'
          compiler: 'gcc'
          configure_options: '--enable-static-executables=yes --enable-multi-threading-support=no'
    steps:
    - uses: actions/checkout@v4
    - name: Install build dependencies
      run: |
        sudo apt-get -y install autoconf automake autopoint build-essential git libtool pkg-config zlib1g-dev
    - name: Download test data
      run: |
        if test -x "synctestdata.sh"; then ./synctestdata.sh; fi
    - name: Building from source
      env:
        CC: ${{ matrix.compiler }}
      run: |
        tests/build.sh ${{ matrix.configure_options }}
    - name: Run tests
      run: |
        tests/runtests.sh
  build_dist:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        include:
        - architecture: 'x64'
          compiler: 'gcc'
          configure_options: ''
    steps:
    - uses: actions/checkout@v4
    - name: Install build dependencies
      run: |
        sudo apt-get -y install autoconf automake autopoint build-essential git libtool pkg-config zlib1g-dev
    - name: Download test data
      run: |
        if test -x "synctestdata.sh"; then ./synctestdata.sh; fi
    - name: Building from source
      env:
        CC: ${{ matrix.compiler }}
      run: |
        tests/build.sh ${{ matrix.configure_options }}
    - name: Run tests
      run: |
        make distcheck
  build_python_ubuntu:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        include:
        - architecture: 'x64'
          compiler: 'gcc'
          configure_options: '--enable-python'
          python_version: ''
    steps:
    - uses: actions/checkout@v4
    - name: Install build dependencies
      run: |
        sudo add-apt-repository universe &&
        sudo apt-get update &&
        sudo apt-get -y install autoconf automake autopoint build-essential git libtool pkg-config zlib1g-dev python3-dev python-dev-is-python3
    - name: Download test data
      run: |
        if test -x "synctestdata.sh"; then ./synctestdata.sh; fi
    - name: Building from source
      env:
        CC: ${{ matrix.compiler }}
      run: |
        tests/build.sh ${{ matrix.configure_options }}
    - name: Run tests
      env:
        PYTHON_VERSION: ${{ matrix.python_version }}
      run: |
        tests/runtests.sh
  build_setup_py_ubuntu:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        include:
        - architecture: 'x64'
          compiler: 'gcc'
          configure_options: ''
          python-version: '3.10'
    steps:
    - uses: actions/checkout@v4
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v5
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install build dependencies
      run: |
        sudo add-apt-repository universe &&
        sudo apt-get update &&
        sudo apt-get -y install autoconf automake autopoint build-essential git libtool pkg-config zlib1g-dev python3-dev python-dev-is-python3
    - name: Building from source
      env:
        CC: ${{ matrix.compiler }}
      run: |
        tests/build.sh ${{ matrix.configure_options }}
    - name: Build Python module
      run: |
        python setup.py build
  coverage_ubuntu:
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        include:
        - architecture: 'x86'
          compiler: 'gcc'
          configure_options: '--enable-wide-character-type'
        - architecture: 'x64'
          compiler: 'gcc'
          configure_options: '--enable-wide-character-type'
    steps:
    - uses: actions/checkout@v4
    - name: Install build dependencies
      run: |
        sudo apt-get -y install autoconf automake autopoint build-essential git libtool pkg-config zlib1g-dev
    - name: Download test data
      run: |
        if test -x "synctestdata.sh"; then ./synctestdata.sh; fi
    - name: Building from source
      env:
        CC: ${{ matrix.compiler }}
      run: |
        tests/build.sh ${{ matrix.configure_options }} --enable-shared=no CFLAGS="--coverage -O0" CPPFLAGS="-DOPTIMIZATION_DISABLED" LDFLAGS="--coverage"
    - name: Run tests
      run: |
        make check CHECK_WITH_STDERR=1 SKIP_TOOLS_END_TO_END_TESTS=1
    - name: Generate coverage data
      run: |
        for DIRECTORY in `find . -maxdepth 1 -type d`; do \
          (cd ${DIRECTORY} && find . -maxdepth 1 -name \*.gcno -type f -exec gcov -pb {} \;) \
        done
    - name: Upload coverage report to Codecov
      uses: codecov/codecov-action@v4
      with:
        name: linux-${{ matrix.architecture }}-gcc-no-optimization
        token: ${{ secrets.CODECOV_TOKEN }}