GitHub: Add more build types
authorNicolas Williams <nico@twosigma.com>
Sat, 15 Jan 2022 22:15:22 +0000 (16:15 -0600)
committerNicolas Williams <nico@twosigma.com>
Sat, 15 Jan 2022 22:18:03 +0000 (16:18 -0600)
 - s/build.yml/${build}.yml/ for the existing builds

 - add filter on branches on push

 - add scan-build build triggered by pushes to the scan-build branch or by PRs
   that touch the scan-build.yml

 - add valgrind build triggered by pushes to the valgrind branch or by PRs that
   touch the valgrind.yml

.github/workflows/linux.yml
.github/workflows/osx.yml
.github/workflows/scanbuild.yml [new file with mode: 0644]
.github/workflows/valgrind.yml [new file with mode: 0644]
.github/workflows/windows.yml

index cb3d41f1c52b508a2301f4a5cf12b86ed4dbc05a..b838ffc9ea9b19d2362b5f9eecc2cebd71a24788 100644 (file)
@@ -2,6 +2,9 @@ name: Linux Build
 
 on:
     push:
+      branches:
+         - 'master'
+         - 'heimdal-7-1-branch'
       paths:
          - '!docs/**'
          - '!**.md'
@@ -19,7 +22,7 @@ on:
          - '**/COPYING'
          - '**/INSTALL'
          - '**/README*'
-         - '.github/workflows/build.yml'
+         - '.github/workflows/linux.yml'
          - '!appveyor.yml'
          - '!.travis.yml'
 
@@ -41,7 +44,7 @@ on:
          - '**/COPYING'
          - '**/INSTALL'
          - '**/README*'
-         - '.github/workflows/build.yml'
+         - '.github/workflows/linux.yml'
          - '!appveyor.yml'
          - '!.travis.yml'
 
@@ -84,9 +87,6 @@ jobs:
                 make -j4
                 make check
                 make install
-            - name: Valgrind output
-              run: |
-                find . -name \*.log -print0|xargs -0 grep '^==[1-9]' || true
             - name: Core dump stacks
               run: |
                 echo "thread apply all bt" > /tmp/x
index f6684c069f19297f528c320fc86c1ff4645239cf..b844cc09a88d8d8cc7361a948bdfd656f62cd3e7 100644 (file)
@@ -2,6 +2,9 @@ name: OS X Build
 
 on:
     push:
+      branches:
+         - 'master'
+         - 'heimdal-7-1-branch'
       paths:
          - '!docs/**'
          - '!**.md'
@@ -19,7 +22,7 @@ on:
          - '**/COPYING'
          - '**/INSTALL'
          - '**/README*'
-         - '.github/workflows/build.yml'
+         - '.github/workflows/osx.yml'
          - '!appveyor.yml'
          - '!.travis.yml'
 
@@ -41,7 +44,7 @@ on:
          - '**/COPYING'
          - '**/INSTALL'
          - '**/README*'
-         - '.github/workflows/build.yml'
+         - '.github/workflows/osx.yml'
          - '!appveyor.yml'
          - '!.travis.yml'
 
diff --git a/.github/workflows/scanbuild.yml b/.github/workflows/scanbuild.yml
new file mode 100644 (file)
index 0000000..3b230c5
--- /dev/null
@@ -0,0 +1,51 @@
+name: Linux Static Analyzer Build
+
+on:
+    push:
+      # Pushes to this branch get the scan-build treatment
+      branches:
+         - 'scan-build'
+
+    pull_request:
+      # Changing this build gets it to run
+      paths:
+         - '.github/workflows/scanbuild.yml'
+
+jobs:
+    unix:
+        runs-on: ${{ matrix.os }}
+        strategy:
+            fail-fast: false
+            matrix:
+                name: [linux-clang]
+                include:
+                    - name: linux-clang
+                      os: ubuntu-18.04
+                      compiler: clang
+        steps:
+            - name: Clone repository
+              uses: actions/checkout@v1
+            - name: Install packages
+              if: startsWith(matrix.os, 'ubuntu')
+              run: |
+                sudo apt-get update -qq
+                sudo apt-get install -y bison comerr-dev flex libcap-ng-dev libdb-dev libedit-dev libjson-perl libldap2-dev libncurses5-dev libperl4-corelibs-perl libsqlite3-dev libkeyutils-dev pkg-config python ss-dev texinfo unzip netbase keyutils ldap-utils gdb apport curl libmicrohttpd-dev clang-tools clang-format jq valgrind
+                # Temporary workaround for:
+                # https://github.com/actions/virtual-environments/issues/3185
+                sudo hostname localhost
+            - name: Build
+              env:
+                CC: ${{ matrix.compiler }}
+                MAKEVARS: ${{ matrix.makevars }}
+                CONFIGURE_OPTS:  ${{ matrix.configureopts }}
+              run: |
+                /bin/sh ./autogen.sh
+                mkdir build
+                cd build
+                ../configure --srcdir=`dirname "$PWD"` --enable-maintainer-mode --enable-developer --with-ldap $CONFIGURE_OPTS --prefix=$HOME/inst CFLAGS="-Wno-error=shadow -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations"
+                ulimit -c unlimited
+                # We don't want to scan-build libedit nor SQLite3 because ETOOSLOW
+                (cd lib/libedit && make -j4)
+                (cd lib/sqlite && make -j4)
+                scan-build --keep-going make -j4
+                scan-build --keep-going make check
diff --git a/.github/workflows/valgrind.yml b/.github/workflows/valgrind.yml
new file mode 100644 (file)
index 0000000..76c8813
--- /dev/null
@@ -0,0 +1,63 @@
+name: Linux Valgrind Tests Build
+
+on:
+    push:
+      # Pushes to the valgrind branch get the valgrind treatment
+      branches:
+         - 'valgrind'
+
+    pull_request:
+      # Changing this build also gets it to run
+      paths:
+         - '.github/workflows/valgrind.yml'
+
+jobs:
+    unix:
+        runs-on: ${{ matrix.os }}
+        strategy:
+            fail-fast: false
+            matrix:
+                name: [linux-clang, linux-gcc]
+                include:
+                    - name: linux-clang
+                      os: ubuntu-18.04
+                      compiler: clang
+                    - name: linux-gcc
+                      os: ubuntu-18.04
+                      compiler: gcc
+        steps:
+            - name: Clone repository
+              uses: actions/checkout@v1
+            - name: Install packages
+              if: startsWith(matrix.os, 'ubuntu')
+              run: |
+                sudo apt-get update -qq
+                sudo apt-get install -y bison comerr-dev flex libcap-ng-dev libdb-dev libedit-dev libjson-perl libldap2-dev libncurses5-dev libperl4-corelibs-perl libsqlite3-dev libkeyutils-dev pkg-config python ss-dev texinfo unzip netbase keyutils ldap-utils gdb apport curl libmicrohttpd-dev jq valgrind
+                # Temporary workaround for:
+                # https://github.com/actions/virtual-environments/issues/3185
+                sudo hostname localhost
+            - name: Build
+              env:
+                CC: ${{ matrix.compiler }}
+                MAKEVARS: ${{ matrix.makevars }}
+                CONFIGURE_OPTS:  ${{ matrix.configureopts }}
+              run: |
+                /bin/sh ./autogen.sh
+                mkdir build
+                cd build
+                ../configure --srcdir=`dirname "$PWD"` --enable-maintainer-mode --enable-developer --with-ldap $CONFIGURE_OPTS --prefix=$HOME/inst CFLAGS="-Wno-error=shadow -Wno-error=bad-function-cast -Wno-error=unused-function -Wno-error=unused-result -Wno-error=deprecated-declarations"
+                ulimit -c unlimited
+                make -j4
+                make check-valgrind
+            - name: Valgrind output
+              run: |
+                find . -name \*.log -print0|xargs -0 grep '^==[0-9]*== ' || true
+            - name: Core dump stacks
+              run: |
+                echo "thread apply all bt" > /tmp/x
+                find . -name core -print | while read core; do gdb -batch -x x `file "$core"|sed -e "s/^[^']*'//" -e "s/[ '].*$//"` "$core"; done
+                if [ "$(find . -name core -print | wc -l)" -gt 0 ]; then false; fi
+            - name: Test logs
+              if: ${{ failure() }}
+              run: |
+                find build -name \*.trs|xargs grep -lw FAIL|sed -e 's/trs$/log/'|xargs cat
index 6291d8bf9239e5706df28e7f6c9d331d8a86eb70..e8f048662fcbc630f502adf358a2b32bc7f6e629 100644 (file)
@@ -2,6 +2,9 @@ name: Windows Build
 
 on:
     push:
+      branches:
+         - 'master'
+         - 'heimdal-7-1-branch'
       paths:
          - '!docs/**'
          - '!**.md'
@@ -18,7 +21,7 @@ on:
          - '**/COPYING'
          - '**/INSTALL'
          - '**/README*'
-         - '.github/workflows/build.yml'
+         - '.github/workflows/windows.yml'
          - '!appveyor.yml'
          - '!.travis.yml'
 
@@ -39,7 +42,7 @@ on:
          - '**/COPYING'
          - '**/INSTALL'
          - '**/README*'
-         - '.github/workflows/build.yml'
+         - '.github/workflows/windows.yml'
          - '!appveyor.yml'
          - '!.travis.yml'