Files

113 lines
3.0 KiB
YAML

name: CI
on:
push:
pull_request:
jobs:
cppcheck:
runs-on: ubuntu-20.04
name: cppcheck
steps:
- uses: actions/checkout@v2
name: checkout repo
- name: Setup Dependencies
run: |
sudo apt-get update -y -qq
sudo apt-get install cppcheck
- name: cppcheck
run: |
cppcheck --std=c89 \
--enable=all \
--inconclusive \
--suppress=variableScope \
--suppress=missingInclude \
--suppress=unusedFunction:src/fuzz/*.c \
--quiet \
--error-exitcode=1 \
--template='{file}:{line} {id} {severity} {message}' \
.
clang-static:
runs-on: ubuntu-20.04
name: clang static check
steps:
- uses: actions/checkout@v2
name: checkout repo
- name: make analyze
run: |
./autogen.sh
./configure
make -C src analyze
build-linux:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
platform: [x32, x64]
compiler: [gcc, clang]
steps:
- uses: actions/checkout@v2
- name: Setup Dependencies
run: |
sudo apt-get update -y -qq
sudo apt-get install valgrind
- name: build
run: |
./autogen.sh
./configure
make
- name: test
run: make -e check
- name: clean
run: make clean
- name: build pedantic
run: make
env:
CFLAGS: '-Wall -Wextra -Werror -pedantic -ansi -g -O1'
- name: test valgrind
run: make -e check
env:
VALGRIND: 'valgrind --gen-suppressions=no --leak-check=full --show-leak-kinds=all --read-var-info=yes --error-exitcode=1 --track-origins=yes --suppressions=/home/runner/work/libinjection/libinjection/src/alpine.supp'
build-macos:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-12, macos-11]
compiler: [gcc, clang]
steps:
- uses: actions/checkout@v2
- name: Cache brew deps
uses: actions/cache@v2
with:
# Paths to cache:
# /usr/local/Homebrew - installation folder of Homebrew
# /usr/local/Cellar - installation folder of Homebrew formulae
# /usr/local/Frameworks, /usr/local/bin, /usr/local/opt - contain (links to) binaries installed by Homebrew formulae
path: |
/usr/local/Homebrew
/usr/local/Cellar
/usr/local/Frameworks
/usr/local/bin
/usr/local/opt
key: macos-build-cache-${{ hashFiles('./scripts/builder_setup.sh') }}
- name: build
run: |
brew install automake autoconf libtool
./autogen.sh
./configure
make
- name: test
run: make -e check
- name: clean
run: make clean
- name: build pedantic
run: make all
env:
CFLAGS: '-Wall -Wextra -Werror -pedantic -ansi -g -O1'