From bc860669860c13d085e609d196cc96ca343585ca Mon Sep 17 00:00:00 2001 From: Nardi Ivan Date: Fri, 17 Mar 2023 11:38:04 +0100 Subject: [PATCH] Rework CI jobs to try reducing CI duration --- .github/workflows/build.yml | 120 -------------------------- .github/workflows/build_scheduled.yml | 111 ++++++++++++++++++++++++ 2 files changed, 111 insertions(+), 120 deletions(-) create mode 100644 .github/workflows/build_scheduled.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index db781c12852..379bd15aab9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,40 +10,6 @@ on: release: types: [created] jobs: - coverage: - name: Coverage (ubuntu-latest) - runs-on: ubuntu-latest - env: - CFLAGS: -Werror - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Install Ubuntu Prerequisites - run: | - sudo apt-get update - sudo apt-get install autoconf automake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev - sudo apt-get install rrdtool librrd-dev - sudo apt-get install libpcre3-dev libmaxminddb-dev lcov - sudo apt-get install wdiff colordiff - - name: Configure - run: ./autogen.sh --enable-option-checking=fatal --enable-debug-messages --enable-code-coverage --with-pcre --with-maxminddb --enable-tls-sigs - - name: Build - run: make all - - name: Test - run: | - make check VERBOSE=1 - - name: Generate Coverage Report - run: | - mkdir -vp coverage_report/ndpi_coverage_report - lcov --directory . --capture --output-file lcov.info - genhtml -o coverage_report/ndpi_coverage_report lcov.info - - uses: actions/upload-artifact@v3 - with: - name: ndpi-coverage-report - path: coverage_report - retention-days: 7 - python-bindings: name: Python Bindings (ubuntu-latest) runs-on: ubuntu-latest @@ -77,76 +43,6 @@ jobs: run: | cd python python tests.py - - documentation: - name: Documentation (ubuntu-latest) - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Set up Python 3.9 - uses: actions/setup-python@v4 - with: - python-version: "3.9" - - name: Install Ubuntu Prerequisites - run: | - sudo apt-get update - sudo apt-get install autoconf automake libtool pkg-config gettext flex bison doxygen - - name: Configure nDPI library - run: | - ./autogen.sh --with-only-libndpi --enable-option-checking=fatal - - name: Generate Documentation - run: | - pip install --upgrade pip - pip install -r doc/requirements.txt - make doc - mkdir -vp doc/_build/ndpi-documentation-upload/ndpi-documentation - mv -v doc/_build/html doc/_build/ndpi-documentation-upload/ndpi-documentation/html - - uses: actions/upload-artifact@v3 - with: - name: ndpi-documentation - path: doc/_build/ndpi-documentation-upload - retention-days: 7 - - performance: - name: Performance (ubuntu-latest) - runs-on: ubuntu-latest - env: - GO111MODULE: on - CFLAGS: -Werror - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Install Ubuntu Prerequisites - run: | - sudo add-apt-repository ppa:longsleep/golang-backports - sudo apt-get update - sudo apt-get install libunwind-dev - sudo apt-get install autoconf automake libtool pkg-config gettext flex bison libpcap-dev - sudo apt-get install golang-1.16-go libgoogle-perftools-dev graphviz - go install github.com/google/pprof@latest - sudo ln -s ${HOME}/go/bin/pprof /usr/bin/pprof - pprof -h - - name: Configure nDPI library - run: | - ./autogen.sh --enable-gprof --enable-option-checking=fatal --with-pcre --with-maxminddb --enable-tls-sigs - - name: Build nDPI library - run: | - make - - name: Performance Profiling - run: | - ./tests/do.sh - mkdir ndpi-performance-upload - mv -v tests/result/cpu_profile.png ndpi-performance-upload/cpu_profile.png - mv -v tests/result/heap_profile.png ndpi-performance-upload/heap_profile.png - - uses: actions/upload-artifact@v3 - with: - name: ndpi-performance - path: ndpi-performance-upload - retention-days: 7 - test-scripts: name: Test Utils (ubuntu-latest) runs-on: ubuntu-latest @@ -229,14 +125,6 @@ jobs: msan: "--with-sanitizer" nBPF: "" lto_gold_linker: "--with-lto-and-gold-linker" - - compiler: "cc" - os: ubuntu-latest - arch: "x86_64" - gcrypt: "" - pcre: "--with-pcre" - maxminddb: "--with-maxminddb" - msan: "--with-sanitizer" - nBPF: "" - compiler: "cc" os: ubuntu-latest arch: "x86_64" @@ -261,14 +149,6 @@ jobs: maxminddb: "--with-maxminddb" msan: "--with-memory-sanitizer" nBPF: "" - - compiler: "cc" - os: ubuntu-latest - arch: "x86_64" - gcrypt: "" - pcre: "--with-pcre" - maxminddb: "--with-maxminddb" - msan: "--with-sanitizer" - nBPF: "" - compiler: "cc" os: macOS-latest arch: "x86_64" diff --git a/.github/workflows/build_scheduled.yml b/.github/workflows/build_scheduled.yml new file mode 100644 index 00000000000..bfd50fd2660 --- /dev/null +++ b/.github/workflows/build_scheduled.yml @@ -0,0 +1,111 @@ +on: + workflow_dispatch: + schedule: + #At the end of every day + - cron: '0 0 * * *' + +jobs: + coverage: + name: Coverage (ubuntu-latest) + runs-on: ubuntu-latest + env: + CFLAGS: -Werror + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Install Ubuntu Prerequisites + run: | + sudo apt-get update + sudo apt-get install autoconf automake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev + sudo apt-get install rrdtool librrd-dev + sudo apt-get install libpcre3-dev libmaxminddb-dev lcov + sudo apt-get install wdiff colordiff + - name: Configure + run: ./autogen.sh --enable-option-checking=fatal --enable-debug-messages --enable-code-coverage --with-pcre --with-maxminddb --enable-tls-sigs + - name: Build + run: make all + - name: Test + run: | + make check VERBOSE=1 + - name: Generate Coverage Report + run: | + mkdir -vp coverage_report/ndpi_coverage_report + lcov --directory . --capture --output-file lcov.info + genhtml -o coverage_report/ndpi_coverage_report lcov.info + - uses: actions/upload-artifact@v3 + with: + name: ndpi-coverage-report + path: coverage_report + retention-days: 7 + + documentation: + name: Documentation (ubuntu-latest) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Set up Python 3.9 + uses: actions/setup-python@v4 + with: + python-version: "3.9" + - name: Install Ubuntu Prerequisites + run: | + sudo apt-get update + sudo apt-get install autoconf automake libtool pkg-config gettext flex bison doxygen + - name: Configure nDPI library + run: | + ./autogen.sh --with-only-libndpi --enable-option-checking=fatal + - name: Generate Documentation + run: | + pip install --upgrade pip + pip install -r doc/requirements.txt + make doc + mkdir -vp doc/_build/ndpi-documentation-upload/ndpi-documentation + mv -v doc/_build/html doc/_build/ndpi-documentation-upload/ndpi-documentation/html + - uses: actions/upload-artifact@v3 + with: + name: ndpi-documentation + path: doc/_build/ndpi-documentation-upload + retention-days: 7 + + performance: + name: Performance (ubuntu-latest) + runs-on: ubuntu-latest + env: + GO111MODULE: on + CFLAGS: -Werror + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Install Ubuntu Prerequisites + run: | + sudo add-apt-repository ppa:longsleep/golang-backports + sudo apt-get update + sudo apt-get install libunwind-dev + sudo apt-get install autoconf automake libtool pkg-config gettext flex bison libpcap-dev + sudo apt-get install golang-1.16-go libgoogle-perftools-dev graphviz + go install github.com/google/pprof@latest + sudo ln -s ${HOME}/go/bin/pprof /usr/bin/pprof + pprof -h + - name: Configure nDPI library + run: | + ./autogen.sh --enable-gprof --enable-option-checking=fatal --with-pcre --with-maxminddb --enable-tls-sigs + - name: Build nDPI library + run: | + make + - name: Performance Profiling + run: | + ./tests/do.sh + mkdir ndpi-performance-upload + mv -v tests/result/cpu_profile.png ndpi-performance-upload/cpu_profile.png + mv -v tests/result/heap_profile.png ndpi-performance-upload/heap_profile.png + - uses: actions/upload-artifact@v3 + with: + name: ndpi-performance + path: ndpi-performance-upload + retention-days: 7 + +