cmake UPDATE flexible compat definitions #227
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 devel push | |
on: | |
push: | |
branches: | |
- devel | |
env: | |
DEFAULT_PACKAGES: libcmocka-dev zlib1g-dev libssh-dev libssl-dev libpam0g-dev libcurl4-openssl-dev | |
COVERITY_PROJECT: CESNET%2Flibnetconf2 | |
jobs: | |
git-branch: | |
name: Get git branch | |
runs-on: ubuntu-latest | |
outputs: | |
branch-name: ${{ steps.get-git-branch.outputs.branch-name }} | |
steps: | |
- id: get-git-branch | |
run: | | |
if ${{ github.event_name == 'push' }} | |
then export GIT_BRANCH=`echo ${{ github.ref }} | cut -d'/' -f 3` | |
else | |
export GIT_BRANCH=${{ github.base_ref }} | |
fi | |
echo "branch-name=$GIT_BRANCH" >> $GITHUB_OUTPUT | |
build: | |
name: ${{ matrix.config.name }} | |
runs-on: ${{ matrix.config.os }} | |
needs: git-branch | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Coverity", | |
os: "ubuntu-latest", | |
build-type: "Debug", | |
dep-build-type: "Debug", | |
cc: "clang", | |
options: "-DENABLE_DNSSEC=ON", | |
packages: "", | |
snaps: "", | |
make-prepend: "cov-build --dir cov-int", | |
make-target: "" | |
} | |
- { | |
name: "Codecov", | |
os: "ubuntu-latest", | |
build-type: "Debug", | |
dep-build-type: "Debug", | |
cc: "gcc", | |
options: "-DENABLE_COVERAGE=ON -DENABLE_DNSSEC=ON", | |
packages: "lcov", | |
snaps: "", | |
make-prepend: "", | |
make-target: "" | |
} | |
steps: | |
- uses: actions/checkout@main | |
- name: Deps-packages | |
shell: bash | |
run: | | |
sudo add-apt-repository ppa:kedazo/libssh-0.7.x -y | |
sudo apt-get update | |
sudo apt-get install $DEFAULT_PACKAGES ${{ matrix.config.packages }} | |
if ${{ matrix.config.snaps != '' }} | |
then sudo snap install ${{ matrix.config.snaps }} | |
fi | |
- name: Deps-coverity | |
shell: bash | |
working-directory: ${{ github.workspace }} | |
run: | | |
wget -q https://scan.coverity.com/download/linux64 --post-data "token=$TOKEN&project=$COVERITY_PROJECT" -O coverity-tools.tar.gz | |
mkdir coverity-tools | |
tar xzf coverity-tools.tar.gz --strip 1 -C coverity-tools | |
env: | |
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} | |
if: ${{ matrix.config.name == 'Coverity' }} | |
- name: Deps-libyang | |
shell: bash | |
run: | | |
git clone -b ${{ needs.git-branch.outputs.branch-name }} 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: ctest --output-on-failure | |
- name: Upload to Coverity.com | |
shell: bash | |
working-directory: ${{ github.workspace }}/build | |
run: | | |
tar czvf libnetconf2.tgz cov-int | |
curl \ | |
--form token=$TOKEN \ | |
--form email=mvasko@cesnet.cz \ | |
--form file=@libnetconf2.tgz \ | |
--form version="`grep Version ./libnetconf2.pc | cut -d' ' -f 2`" \ | |
--form description="libnetconf2 NETCONF library" \ | |
https://scan.coverity.com/builds?project=$COVERITY_PROJECT | |
env: | |
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} | |
if: ${{ matrix.config.name == 'Coverity' }} | |
- name: Upload to Codecov.io | |
shell: bash | |
working-directory: ${{ github.workspace }}/build | |
run: bash <(curl -s https://codecov.io/bash) | |
if: ${{ matrix.config.name == 'Codecov' }} |