config UPDATE add support for TLS #16
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: libnetconf2 CI | |
on: | |
push: | |
branches: | |
- libnetconf3 | |
pull_request: | |
branches: | |
- libnetconf3 | |
env: | |
DEFAULT_PACKAGES: libcmocka-dev zlib1g-dev libssh-dev libssl-dev libpam0g-dev | |
jobs: | |
build: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Release, gcc", | |
os: "ubuntu-22.04", | |
build-type: "Release", | |
dep-build-type: "Release", | |
cc: "gcc", | |
options: "-DENABLE_TESTS=ON -DENABLE_DNSSEC=ON", | |
packages: "", | |
snaps: "", | |
make-prepend: "", | |
make-target: "" | |
} | |
- { | |
name: "Release, clang", | |
os: "ubuntu-22.04", | |
build-type: "Release", | |
dep-build-type: "Release", | |
cc: "clang", | |
options: "-DENABLE_TESTS=ON -DENABLE_DNSSEC=ON", | |
packages: "", | |
snaps: "", | |
make-prepend: "", | |
make-target: "" | |
} | |
- { | |
name: "Debug, gcc", | |
os: "ubuntu-22.04", | |
build-type: "Debug", | |
dep-build-type: "Release", | |
cc: "gcc", | |
options: "-DENABLE_DNSSEC=ON", | |
packages: "valgrind", | |
snaps: "", | |
make-prepend: "", | |
make-target: "" | |
} | |
- { | |
name: "Debug, clang", | |
os: "ubuntu-22.04", | |
build-type: "Debug", | |
dep-build-type: "Release", | |
cc: "clang", | |
options: "-DENABLE_DNSSEC=ON", | |
# no valgrind because it does not support DWARF5 yet generated by clang 14 | |
packages: "", | |
snaps: "", | |
make-prepend: "", | |
make-target: "" | |
} | |
- { | |
name: "SSH Only", | |
os: "ubuntu-22.04", | |
build-type: "Debug", | |
dep-build-type: "Release", | |
cc: "gcc", | |
options: "-DENABLE_TLS=OFF -DENABLE_SSH=ON", | |
packages: "valgrind", | |
snaps: "", | |
make-prepend: "", | |
make-target: "" | |
} | |
# - { | |
# name: "TLS Only", | |
# os: "ubuntu-22.04", | |
# build-type: "Debug", | |
# dep-build-type: "Release", | |
# cc: "gcc", | |
# options: "-DENABLE_TLS=ON -DENABLE_SSH=OFF", | |
# packages: "valgrind", | |
# snaps: "", | |
# make-prepend: "", | |
# make-target: "" | |
# } | |
# - { | |
# name: "No SSH nor TLS", | |
# os: "ubuntu-22.04", | |
# build-type: "Debug", | |
# dep-build-type: "Release", | |
# cc: "gcc", | |
# options: "-DENABLE_TLS=OFF -DENABLE_SSH=OFF", | |
# packages: "valgrind", | |
# snaps: "", | |
# make-prepend: "", | |
# make-target: "" | |
# } | |
- { | |
name: "ASAN and UBSAN", | |
os: "ubuntu-22.04", | |
build-type: "Debug", | |
dep-build-type: "Release", | |
cc: "clang", | |
options: "-DCMAKE_C_FLAGS=-fsanitize=address,undefined -DENABLE_VALGRIND_TESTS=OFF", | |
packages: "", | |
snaps: "", | |
make-prepend: "", | |
make-target: "" | |
} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Deps-packages | |
shell: bash | |
run: | | |
sudo apt-get update | |
sudo apt-get install $DEFAULT_PACKAGES ${{ matrix.config.packages }} | |
if ${{ matrix.config.snaps != '' }} | |
then sudo snap refresh; sudo snap install ${{ matrix.config.snaps }} | |
fi | |
- name: Deps-uncrustify | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: | | |
git clone --branch uncrustify-0.75.1 https://github.com/uncrustify/uncrustify | |
cd uncrustify | |
mkdir build | |
cd build | |
CC=${{ matrix.config.cc }} cmake .. | |
make | |
sudo make install | |
if: ${{ matrix.config.name == 'Debug, gcc' }} | |
- name: Deps-libyang | |
shell: bash | |
run: | | |
git clone -b devel https://github.com/CESNET/libyang.git | |
cd libyang | |
mkdir build | |
cd build | |
CC=${{ matrix.config.cc }} cmake -DCMAKE_BUILD_TYPE=${{ matrix.config.dep-build-type }} -DENABLE_TESTS=OFF .. | |
make -j2 | |
sudo make install | |
- name: Deps-libval | |
shell: bash | |
run: | | |
git clone https://github.com/DNSSEC-Tools/DNSSEC-Tools.git dnssec-tools | |
cd dnssec-tools/dnssec-tools/validator | |
./configure | |
make -j2 | |
sudo make install | |
- name: Configure | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: | | |
mkdir build | |
cd build | |
CC=${{ matrix.config.cc }} cmake -DCMAKE_BUILD_TYPE=${{ matrix.config.build-type }} ${{ matrix.config.options }} .. | |
- name: Build | |
shell: bash | |
working-directory: ${{ github.workspace }}/build | |
run: | | |
export LC_ALL=C.UTF-8 | |
export PATH=/snap/bin:${{ github.workspace }}/coverity-tools/bin:$PATH | |
${{ matrix.config.make-prepend }} make ${{ matrix.config.make-target }} | |
- name: Test | |
shell: bash | |
working-directory: ${{ github.workspace }}/build | |
run: | | |
export LSAN_OPTIONS=suppressions=${{ github.workspace }}/tests/library_lsan.supp | |
ctest --output-on-failure |