Fix yaml? 3 #6
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: C/C++ CI | ||
on: | ||
push: | ||
branches: [ main ] | ||
pull_request: | ||
branches: [ main ] | ||
jobs: | ||
build: | ||
timeout-minutes: 30 | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: apt update | ||
run: sudo apt update | ||
- name: dpkg / rpm prep (debug) | ||
run: echo "sudo -E apt-get install -y uuid-dev uuid libuuid1 libaio-dev libaio1 libgcrypt20 openssl libssl-dev `apt-cache search librocksdb | awk '{print $1}'` uncrustify libasan5 libtsan0" | ||
- name: dpkg / rpm prep | ||
run: sudo -E apt-get install -y uuid-dev uuid libuuid1 libaio-dev libaio1 libgcrypt20 openssl libssl-dev `apt-cache search librocksdb | awk '{print $1}'` uncrustify libasan5 libtsan0 | ||
# capture gcc and clang versions | ||
- name: gcc version | ||
run: gcc --version | ||
- name: clang version | ||
run: clang --version | ||
# niova-pumicedb submodule init | ||
- name: submodule init | ||
run: git submodule init && git submodule update | ||
# build backtrace submodule | ||
- name: build libbacktrace | ||
run: cd modules/libbacktrace/ && ./configure && make && sudo make install | ||
# niova-core submodule init | ||
- name: submodule init (niova-core) | ||
run: cd niova-core && git submodule init && git submodule update | ||
# build niova-core | ||
- name: build niova-core | ||
run: git submodule update && | ||
cd niova-core/ && | ||
./prepare.sh && | ||
./configure --enable-devel --prefix=/usr/local/niova && | ||
make -j 4 && make -j 4 check && sudo make install | ||
# default build | ||
- name: prepare default build | ||
run: ./prepare.sh | ||
- name: configure | ||
run: ./configure LDFLAGS=-L/usr/local/lib --with-niova=/usr/local/niova | ||
- name: make | ||
run: make -j 4 | ||
- name: make check (default) | ||
run: make check | ||
- name: Dump logs if failure | ||
run: find test -name \*.log -exec cat {} \; | ||
if: ${{ failure() }} | ||
# asan build | ||
- name: distclean | ||
run: make distclean | ||
- name: prepare address sanitizer build | ||
run: ./prepare.sh | ||
- name: configure with address-sanitizer | ||
run: ./configure --enable-asan --enable-devel | ||
- name: make | ||
run: make -j 4 | ||
- name: make check (asan) | ||
run: make check | ||
- name: Dump logs if failure | ||
run: find test -name \*.log -exec cat {} \; | ||
if: ${{ failure() }} | ||
# clang build | ||
- name: distclean | ||
run: make distclean | ||
- name: prepare clang build | ||
run: ./prepare.sh | ||
- name: configure CC=clang | ||
run: ./configure CC=clang | ||
- name: make | ||
run: make -j 4 | ||
- name: make check (clang) | ||
run: make check | ||
- name: Dump logs if failure | ||
run: find test -name \*.log -exec cat {} \; | ||
if: ${{ failure() }} | ||
# other targets | ||
- name: uncrustify version (debug) | ||
run: uncrustify -v | ||
- name: make autofmt-check | ||
run: make autofmt-check | ||
# gather some system stats | ||
- name: memory | ||
run: free | ||
- name: net | ||
run: ip a | ||
- name: disk | ||
run: df -h | ||
- name: process | ||
run: ps auxfw | ||
- name: cpu | ||
run: cat /proc/cpuinfo | ||
- name: ulimit | ||
run: ulimit -a | ||
- name: limits.conf | ||
run: cat /etc/security/limits.conf |