- name: Generate project files
run: |
- cmake . -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DWITH_FUZZERS=OFF -DWITH_CODE_COVERAGE=OFF -DWITH_MAINTAINER_WARNINGS=OFF
+ cmake . \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DWITH_FUZZERS=OFF \
+ -DWITH_CODE_COVERAGE=OFF \
+ -DWITH_MAINTAINER_WARNINGS=OFF
env:
CC: gcc-10
- CFLAGS: "-fanalyzer -Werror -Wanalyzer-double-fclose -Wanalyzer-double-free -Wanalyzer-exposure-through-output-file -Wanalyzer-file-leak -Wanalyzer-free-of-non-heap -Wanalyzer-malloc-leak -Wanalyzer-null-argument -Wanalyzer-null-dereference -Wanalyzer-possible-null-argument -Wanalyzer-possible-null-dereference -Wanalyzer-stale-setjmp-buffer -Wanalyzer-tainted-array-index -Wanalyzer-unsafe-call-within-signal-handler -Wanalyzer-use-after-free -Wanalyzer-use-of-pointer-in-stale-stack-frame"
+ CFLAGS:
+ -fanalyzer
+ -Werror
+ -Wanalyzer-double-fclose
+ -Wanalyzer-double-free
+ -Wanalyzer-exposure-through-output-file
+ -Wanalyzer-file-leak
+ -Wanalyzer-free-of-non-heap
+ -Wanalyzer-malloc-leak
+ -Wanalyzer-null-argument
+ -Wanalyzer-null-dereference
+ -Wanalyzer-possible-null-argument
+ -Wanalyzer-possible-null-dereference
+ -Wanalyzer-stale-setjmp-buffer
+ -Wanalyzer-tainted-array-index
+ -Wanalyzer-unsafe-call-within-signal-handler
+ -Wanalyzer-use-after-free
+ -Wanalyzer-use-of-pointer-in-stale-stack-frame
CI: true
- name: Compile source code
uses: actions/checkout@v3
- name: Install packages (Ubuntu)
- run: sudo apt-get install clang-tools -y
+ run: sudo apt-get install -y clang-tools
- name: Generate project files
run: |
- scan-build --status-bugs cmake . -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DWITH_FUZZERS=OFF -DWITH_CODE_COVERAGE=OFF -DWITH_MAINTAINER_WARNINGS=OFF
+ scan-build --status-bugs \
+ cmake . \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DWITH_FUZZERS=OFF \
+ -DWITH_CODE_COVERAGE=OFF \
+ -DWITH_MAINTAINER_WARNINGS=OFF
env:
CI: true
- name: Compile source code
run: |
- scan-build --status-bugs cmake --build . --config Release > /dev/null
+ scan-build --status-bugs \
+ cmake --build . --config Release > /dev/null
if: contains(matrix.name, 'MSAN')
run: |
git clone --depth=1 https://github.com/llvm/llvm-project --single-branch --branch llvmorg-11.0.0
- cd llvm-project
- mkdir build
- cd build
- cmake -G Ninja ../llvm -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi" -DLLVM_USE_SANITIZER=MemoryWithOrigins -DLLVM_LIBC_ENABLE_LINTING=OFF
- cmake --build . -- cxx cxxabi
- echo "LLVM_BUILD_DIR=`pwd`" >> $GITHUB_ENV
+ cmake -S llvm-project/llvm -B llvm-project/build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DLLVM_ENABLE_PROJECTS="libcxx;libcxxabi" \
+ -DLLVM_USE_SANITIZER=MemoryWithOrigins \
+ -DLLVM_LIBC_ENABLE_LINTING=OFF
+ cmake --build llvm-project/build -- cxx cxxabi
+ echo "LLVM_BUILD_DIR=`pwd`/llvm-project/build" >> $GITHUB_ENV
env:
CC: ${{ matrix.compiler }}
CXX: ${{ matrix.cxx-compiler }}
- name: Generate project files
+ shell: bash
# Shared libraries turned off for qemu ppc* and sparc & reduce code coverage sources
run: |
- mkdir ${{ matrix.build-dir || '.not-used' }}
- cd ${{ matrix.build-dir || '.' }}
- cmake ${{ matrix.build-src-dir || '.' }} ${{ matrix.cmake-args }} -DCMAKE_BUILD_TYPE=${{ matrix.build-config || 'Release' }} -DBUILD_SHARED_LIBS=OFF -DWITH_FUZZERS=ON ${{ matrix.codecov && '-DWITH_CODE_COVERAGE=ON' }} -DWITH_MAINTAINER_WARNINGS=ON
+ cmake -S ${{ matrix.build-src-dir || '.' }} -B ${{ matrix.build-dir || '.' }} ${{ matrix.cmake-args }} \
+ -DCMAKE_BUILD_TYPE=${{ matrix.build-config || 'Release' }} \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DWITH_FUZZERS=ON \
+ -DWITH_MAINTAINER_WARNINGS=ON \
+ ${{ matrix.codecov && '-DWITH_CODE_COVERAGE=ON' }}
env:
CC: ${{ matrix.compiler }}
CXX: ${{ matrix.cxx-compiler }}
shell: bash
run: |
python3 -u -m pip install --user gcovr==5.0
- python3 -m gcovr --exclude-unreachable-branches --gcov-executable "${{ matrix.gcov-exec || 'gcov' }}" --root ${{ matrix.build-src-dir || '.' }} --xml --output coverage.xml -j 3 --verbose
+ python3 -m gcovr -j 3 --verbose \
+ --exclude-unreachable-branches \
+ --gcov-executable "${{ matrix.gcov-exec || 'gcov' }}" \
+ --root ${{ matrix.build-src-dir || '.' }} \
+ --xml --output coverage.xml
- name: Upload coverage report
uses: codecov/codecov-action@v2
- name: Generate project files (zlib-ng)
run: |
- cmake . -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DZLIB_COMPAT=ON -DZLIB_ENABLE_TESTS=OFF
+ cmake . \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DZLIB_COMPAT=ON \
+ -DZLIB_ENABLE_TESTS=OFF
env:
CC: clang
CFLAGS: -fPIC
path: libpng
- name: Generate project files (libpng)
- run: cmake . -DCMAKE_BUILD_TYPE=Release -DPNG_TESTS=ON -DPNG_STATIC=OFF -DZLIB_INCLUDE_DIR=.. -DZLIB_LIBRARY=$PWD/../libz.a
+ run: |
+ cmake . \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DPNG_TESTS=ON \
+ -DPNG_STATIC=OFF \
+ -DZLIB_INCLUDE_DIR=.. \
+ -DZLIB_LIBRARY=$PWD/../libz.a
working-directory: libpng
env:
CC: clang
sudo apt-get install -y ${{ matrix.packages }}
- name: Generate project files
- run: cmake ${{ matrix.cmake-args }} -DCMAKE_BUILD_TYPE=${{ matrix.build-config || 'Release' }} -DBUILD_SHARED_LIBS=OFF -DZLIB_ROOT=../.. -DWITH_CODE_COVERAGE=ON -DWITH_MAINTAINER_WARNINGS=ON
+ run: |
+ cmake ${{ matrix.cmake-args }} \
+ -DCMAKE_BUILD_TYPE=${{ matrix.build-config || 'Release' }} \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DZLIB_ROOT=../.. \
+ -DWITH_CODE_COVERAGE=ON \
+ -DWITH_MAINTAINER_WARNINGS=ON
working-directory: test/pigz
env:
CC: ${{ matrix.compiler }}
if: matrix.codecov
run: |
python3 -u -m pip install --user gcovr==5.0
- python3 -m gcovr --exclude-unreachable-branches --gcov-executable "${{ matrix.gcov-exec || 'gcov' }}" --root . --xml --output coverage.xml -j 3 --verbose
+ python3 -m gcovr -j 3 --verbose \
+ --exclude-unreachable-branches \
+ --gcov-executable "${{ matrix.gcov-exec || 'gcov' }}" \
+ --root . \
+ --xml --output coverage.xml
- name: Upload coverage report
uses: codecov/codecov-action@v2
if: runner.os == 'Linux'
run: |
sudo apt-get update
- sudo apt-get install -y --no-install-recommends abigail-tools ninja-build diffoscope ${{ matrix.packages }}
+ sudo apt-get install -y --no-install-recommends ${{ matrix.packages }} \
+ abigail-tools \
+ diffoscope \
+ ninja-build
- name: Install packages (macOS)
if: runner.os == 'macOS'
run: echo "tag=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
- name: Generate project files
+ shell: bash
run: |
- cmake . ${{ matrix.cmake-args }} -DCMAKE_BUILD_TYPE=Release -DZLIB_ENABLE_TESTS=ON -DCMAKE_INSTALL_PREFIX=out -DINSTALL_UTILS=ON
+ cmake . ${{ matrix.cmake-args }} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DZLIB_ENABLE_TESTS=ON \
+ -DCMAKE_INSTALL_PREFIX=out \
+ -DINSTALL_UTILS=ON
env:
CC: ${{ matrix.compiler }}
CI: true