test plugin NEW tests for datastore plugins #8
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: sysrepo devel push | |
on: | |
push: | |
branches: | |
- devel | |
env: | |
COVERITY_PROJECT: sysrepo%2Fsysrepo | |
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 }} # mac-OS does not implement robust mutexes so it is not supported | |
needs: git-branch | |
if: ${{ github.repository == 'sysrepo/sysrepo' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Coverity", | |
os: "ubuntu-latest", | |
build-type: "Debug", | |
dep-build-type: "Debug", | |
cc: "clang", | |
options: "", | |
packages: "", | |
snaps: "", | |
make-prepend: "cov-build --dir cov-int", | |
make-target: "" | |
} | |
- { | |
name: "Codecov", | |
os: "ubuntu-latest", | |
build-type: "Debug", | |
cc: "gcc", | |
options: "-DENABLE_COVERAGE=ON", | |
packages: "libcmocka-dev lcov", | |
snaps: "", | |
make-prepend: "", | |
make-target: "" | |
} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Deps-packages | |
shell: bash | |
run: | | |
sudo apt-get update | |
if ${{ matrix.config.packages != '' }} | |
then sudo apt-get install ${{ matrix.config.packages }} | |
fi | |
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: 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 sysrepo.tgz cov-int | |
curl \ | |
--form token=$TOKEN \ | |
--form email=mvasko@cesnet.cz \ | |
--form file=@sysrepo.tgz \ | |
--form version="`./sysrepoctl -V | head -n1 | cut -d' ' -f 11 | cut -b 2-`" \ | |
--form description="sysrepo datastore" \ | |
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' }} |