aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorPetri Lehtinen <petri@digip.org>2020-12-14 20:36:03 +0200
committerPetri Lehtinen <petri@digip.org>2021-01-14 21:12:02 +0200
commit0bc4325222b8a4ef818aeda8364dd89f8800709f (patch)
treefe2527d2ca27fe3cf6fb91507701631cd7e17a90 /.github/workflows
parentfd3e9e3051fa17d293db7974863d84b512457528 (diff)
downloadjansson-0bc4325222b8a4ef818aeda8364dd89f8800709f.zip
jansson-0bc4325222b8a4ef818aeda8364dd89f8800709f.tar.gz
jansson-0bc4325222b8a4ef818aeda8364dd89f8800709f.tar.bz2
GitHub Actions
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/tests.yml92
1 files changed, 92 insertions, 0 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
new file mode 100644
index 0000000..6ee0b7e
--- /dev/null
+++ b/.github/workflows/tests.yml
@@ -0,0 +1,92 @@
+name: tests
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - run: ./scripts/clang-format-check
+
+ autotools:
+ strategy:
+ matrix:
+ os: ["ubuntu-latest", "macos-latest"]
+ cc: ["gcc", "clang"]
+
+ runs-on: ${{matrix.os}}
+
+ steps:
+ - if: ${{runner.os == 'macOS'}}
+ run: brew install autoconf automake libtool
+ - uses: actions/checkout@v2
+ - run: autoreconf -fi
+ - env:
+ CC: ${{matrix.cc}}
+ CFLAGS: -Werror
+ run: ./configure
+ - run: make check
+
+ cmake:
+ strategy:
+ matrix:
+ os: ["ubuntu-latest", "macos-latest", "windows-latest"]
+ cc: ["gcc", "clang"]
+ exclude:
+ - os: windows-latest
+ cc: gcc
+ - os: windows-latest
+ cc: clang
+ include:
+ - os: windows-latest
+ cc: 'msvc' # Doesn't really matter, MSVC is always used on Windows
+
+ runs-on: ${{matrix.os}}
+
+ steps:
+ - uses: actions/checkout@v2
+ - env:
+ CC: ${{matrix.cc}}
+ run: cmake .
+ - run: cmake --build .
+ - run: ctest
+
+ valgrind:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - run: sudo apt update && sudo apt install valgrind
+ - run: cmake -DJANSSON_TEST_WITH_VALGRIND=ON .
+ - run: cmake --build .
+ - run: ctest
+
+ coveralls:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - run: sudo apt update && sudo apt install curl lcov
+ - run: cmake -DJANSSON_COVERAGE=ON -DJANSSON_COVERALLS=ON -DCMAKE_BUILD_TYPE=Debug
+ - run: cmake --build .
+ - run: cmake --build . --target coveralls
+
+ fuzz:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - run: |
+ git clone https://github.com/google/oss-fuzz.git /tmp/ossfuzz
+ if [ "$GITHUB_HEAD_REF" ]; then
+ BRANCH=${GITHUB_HEAD_REF##*/}
+ else
+ BRANCH=${GITHUB_REF##*/}
+ fi
+ sed -i "s@https://github.com/akheron/jansson.git@-b $BRANCH https://github.com/${{github.repository}}.git@" /tmp/ossfuzz/projects/jansson/Dockerfile
+ pushd /tmp/ossfuzz
+ python infra/helper.py build_image --pull jansson
+ python infra/helper.py build_fuzzers jansson
+ popd