ci: run more checks in private repositories

Message ID 20220324145343.24485-1-david.marchand@redhat.com (mailing list archive)
State Changes Requested, archived
Delegated to: David Marchand
Headers
Series ci: run more checks in private repositories |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-abi-testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-broadcom-Functional fail Functional Testing issues
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS

Commit Message

David Marchand March 24, 2022, 2:53 p.m. UTC
  Though devtools/checkpatches.sh is run as part of our CI, some other
(not well known) checks could help when run in private repositories
before submitting to the mailing list and even when run from the
ovsrobot.

Most of them require a git history or checked sources to run.
And I can't guarantee there won't be false positives.

Add a new job just for those checks so that it won't block compilation
tests in other jobs.

Signed-off-by: David Marchand <david.marchand@redhat.com>
---
 .ci/linux-build.sh          |  2 --
 .github/workflows/build.yml | 25 ++++++++++++++++++++++++-
 2 files changed, 24 insertions(+), 3 deletions(-)
  

Comments

Aaron Conole March 25, 2022, 2:32 p.m. UTC | #1
David Marchand <david.marchand@redhat.com> writes:

> Though devtools/checkpatches.sh is run as part of our CI, some other
> (not well known) checks could help when run in private repositories
> before submitting to the mailing list and even when run from the
> ovsrobot.
>
> Most of them require a git history or checked sources to run.
> And I can't guarantee there won't be false positives.
>
> Add a new job just for those checks so that it won't block compilation
> tests in other jobs.
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---

Looks good to me.  The extra fetches shouldn't take too long (since we
refresh main branch weekly to the robot repository).  The checks look
good - and since it's part of the same build workflow, it will be
reported in the same place (and hopefully in a readable form).

Acked-by: Aaron Conole <aconole@redhat.com>
  
David Marchand April 28, 2022, 12:12 p.m. UTC | #2
On Fri, Mar 25, 2022 at 3:32 PM Aaron Conole <aconole@redhat.com> wrote:
> David Marchand <david.marchand@redhat.com> writes:
>
> > Though devtools/checkpatches.sh is run as part of our CI, some other
> > (not well known) checks could help when run in private repositories
> > before submitting to the mailing list and even when run from the
> > ovsrobot.
> >
> > Most of them require a git history or checked sources to run.
> > And I can't guarantee there won't be false positives.
> >
> > Add a new job just for those checks so that it won't block compilation
> > tests in other jobs.
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
>
> Looks good to me.  The extra fetches shouldn't take too long (since we
> refresh main branch weekly to the robot repository).  The checks look
> good - and since it's part of the same build workflow, it will be
> reported in the same place (and hopefully in a readable form).

Thanks for the review.

Thomas expressed a concern that the check-git-log.sh script has too
many false positives.
I will respin removing this check.
  

Patch

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index 69940dec8b..e3ac497012 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -117,8 +117,6 @@  if [ "$ABI_CHECKS" = "true" ]; then
 
     export PATH=$(pwd)/libabigail/bin:$PATH
 
-    REF_GIT_REPO=${REF_GIT_REPO:-https://dpdk.org/git/dpdk}
-
     if [ "$(cat reference/VERSION 2>/dev/null)" != "$REF_GIT_TAG" ]; then
         rm -rf reference
     fi
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 02819aa5de..829a10f5be 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -9,7 +9,31 @@  defaults:
   run:
     shell: bash --noprofile --norc -exo pipefail {0}
 
+env:
+  REF_GIT_BRANCH: main
+  REF_GIT_REPO: https://dpdk.org/git/dpdk
+  REF_GIT_TAG: v22.03
+
 jobs:
+  checkpatch:
+    if: github.repository != 'DPDK/dpdk'
+    name: Check patches
+    runs-on: ubuntu-18.04
+    steps:
+    - name: Checkout sources
+      uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
+    - name: Check patches
+      run: |
+        git remote add upstream ${{ env.REF_GIT_REPO }}
+        git fetch upstream ${{ env.REF_GIT_BRANCH }}
+        failed=
+        devtools/check-doc-vs-code.sh upstream/${{ env.REF_GIT_BRANCH }} || failed=true
+        devtools/check-git-log.sh -r upstream/${{ env.REF_GIT_BRANCH }}.. || failed=true
+        devtools/check-meson.py || failed=true
+        devtools/check-symbol-maps.sh || failed=true
+        [ -z "$failed" ]
   build:
     name: ${{ join(matrix.config.*, '-') }}
     runs-on: ${{ matrix.config.os }}
@@ -23,7 +47,6 @@  jobs:
       LIBABIGAIL_VERSION: libabigail-1.8
       MINI: ${{ matrix.config.mini != '' }}
       PPC64LE: ${{ matrix.config.cross == 'ppc64le' }}
-      REF_GIT_TAG: v22.03
       RUN_TESTS: ${{ contains(matrix.config.checks, 'tests') }}
 
     strategy: