name: CI x86_64 on: [push, pull_request] env: ARCH: x86_64 CC: gcc CONTAINER_NAMESPACE: ghcr.io/opendataplane/odp-docker-images OS: ubuntu_18.04 jobs: Checkpatch: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: Install dependencies run: sudo apt install codespell - name: Check pull request if: github.event_name == 'pull_request' env: CHECKPATCH_COMMAND: ./scripts/checkpatch.pl uses: webispy/checkpatch-action@v7 - name: Check push if: github.event_name == 'push' && github.ref != 'refs/heads/master' run: | AFTER=${{ github.event.after }} BEFORE=${{ github.event.before }} if [ -z "${BEFORE//0}" ] || [ -z "${AFTER//0}" ]; then COMMIT_RANGE="" else COMMIT_RANGE="${BEFORE}..${AFTER}" fi ./scripts/ci-checkpatches.sh ${COMMIT_RANGE} Documentation: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - name: Install dependencies run: | sudo apt install doxygen asciidoctor libconfig-dev libssl-dev mscgen cmake graphviz libdpdk-dev sudo gem install asciidoctor - name: Build shell: bash run: | ./bootstrap ./configure --enable-user-guides pushd doc make popd touch ./doxygen.log # Doxygen does not trap on warnings, check for them here. make doxygen-doc 2>&1 | tee ./doxygen.log ! fgrep -rq warning ./doxygen.log Build: runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: cc: [gcc, clang] conf: ['', 'CFLAGS=-O3', 'CFLAGS=-O1', 'CFLAGS=-O0 --enable-debug=full', '--enable-lto', '--enable-lto --enable-abi-compat', '--enable-pcapng-support'] exclude: - cc: clang conf: '--enable-lto' - cc: clang conf: '--enable-lto --enable-abi-compat' steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}" -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh Build_arm64: runs-on: ubuntu-18.04 env: ARCH: arm64 strategy: fail-fast: false matrix: cc: [gcc, clang] steps: - uses: actions/checkout@v2 - name: Minimal run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}" -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh - name: --enable-abi-compat env: CONF: "--enable-abi-compat" run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}" -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh - name: Ubuntu 20.04 env: CONF: "--enable-dpdk-shared" OS: ubuntu_20.04 run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.compiler}}" -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh Build_ppc64el: runs-on: ubuntu-18.04 env: ARCH: ppc64el strategy: fail-fast: false matrix: cc: [gcc, clang] conf: ['', '--enable-abi-compat'] steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh Build_i386: runs-on: ubuntu-18.04 env: ARCH: i386 strategy: fail-fast: false matrix: cc: [gcc, clang] conf: ['', '--enable-abi-compat'] steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}" -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh Build_OS: runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: cc: [gcc, clang] os: ['centos_7', 'centos_8', 'ubuntu_16.04'] conf: ['--enable-abi-compat'] steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}" -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${{matrix.os}}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh Build_gcc-10: runs-on: ubuntu-18.04 env: CC: gcc-10 OS: ubuntu_20.04 strategy: fail-fast: false matrix: conf: ['', '--enable-lto'] steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e CXX=g++-10 -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh Build_out-of-tree: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/out_of_tree.sh Build_linux-generic: runs-on: ubuntu-18.04 env: CONF: "--with-platform=linux-generic" steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ODP_LIB_NAME="libodp-linux" -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh Build_sched_config: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e CONF="--enable-debug=full" -e ODP_CONFIG_FILE=/odp/platform/linux-dpdk/test/sched-basic.conf $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/build_${ARCH}.sh Run_coverage: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/coverage.sh - name: Failure log if: ${{ failure() }} run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done - name: Upload to Codecov uses: codecov/codecov-action@v1.2.1 Run_distcheck: runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: conf: ['--enable-user-guides', '--enable-user-guides --enable-abi-compat'] steps: - uses: actions/checkout@v2 # Ignore distcheck failure (caused by the first 'make check' run unmounting huge pages) - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}" -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/distcheck.sh || true - name: Failure log if: ${{ failure() }} run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done Run: runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: cc: [gcc, clang] conf: ['', '--enable-abi-compat', '--enable-deprecated --enable-debug=full', '--disable-static-applications', '--disable-host-optimization', '--disable-host-optimization --enable-abi-compat', '--without-openssl --without-pcap'] steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}" -e ARCH="${ARCH}" -e CXX=g++-10 -e CONF="${{matrix.conf}}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/check.sh - name: Failure log if: ${{ failure() }} run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done Run_OS: runs-on: ubuntu-18.04 strategy: fail-fast: false matrix: cc: [gcc, clang] os: ['ubuntu_20.04'] steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${{matrix.cc}}" -e ARCH="${ARCH}" -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${{matrix.os}}-${ARCH} /odp/scripts/ci/check.sh - name: Failure log if: ${{ failure() }} run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done Run_scheduler_sp: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}" -e CONF="${CONF}" -e ODP_SCHEDULER=sp $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/check.sh - name: Failure log if: ${{ failure() }} run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done Run_process_mode: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}" -e CONF="${CONF}" -e ODPH_PROC_MODE=1 $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH} /odp/scripts/ci/check.sh - name: Failure log if: ${{ failure() }} run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done Run_dpdk-18_11: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}" -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-dpdk_18.11 /odp/scripts/ci/check.sh - name: Failure log if: ${{ failure() }} run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done Run_dpdk-20_11: runs-on: ubuntu-18.04 env: ARCH: x86_64 OS: ubuntu_20.04 steps: - uses: actions/checkout@v2 - run: sudo docker run -i -v `pwd`:/odp --privileged --shm-size 8g -e CC="${CC}" -e ARCH="${ARCH}" -e CONF="${CONF}" $CONTAINER_NAMESPACE/odp-ci-${OS}-${ARCH}-dpdk_20.11 /odp/scripts/ci/check.sh - name: Failure log if: ${{ failure() }} run: find . -name "*.trs" | xargs grep -l '^.test-result. FAIL' | while read trs ; do echo FAILURE detected at $trs; cat ${trs%%.trs}.log ; done