From f2858c7e6a4b606dc93896c549e84460f995686c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
Date: Sun, 8 May 2022 09:56:35 +0200
Subject: [PATCH] ci: make jobs faster during pull request testing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

With the proliferation of test cases, CI runs tend to become rather long
since we run all tests under valgrind using multiple gcc and Clang
versions each.

In order to speedup the jobs, we tests pull requests under valgrind only
for the most recent GCC and Clang versions and run all tests when the
code hits the master branch.

Closes #66
Signed-off-by: Petr Štetiar <ynezz@true.cz>
---
 .../{openwrt-ci.yml => openwrt-ci-master.yml} | 10 +++-
 .github/workflows/openwrt-ci-pull-request.yml | 55 +++++++++++++++++++
 2 files changed, 62 insertions(+), 3 deletions(-)
 rename .github/workflows/{openwrt-ci.yml => openwrt-ci-master.yml} (88%)
 create mode 100644 .github/workflows/openwrt-ci-pull-request.yml

diff --git a/.github/workflows/openwrt-ci.yml b/.github/workflows/openwrt-ci-master.yml
similarity index 88%
rename from .github/workflows/openwrt-ci.yml
rename to .github/workflows/openwrt-ci-master.yml
index 4342205c..77f2bfc7 100644
--- a/.github/workflows/openwrt-ci.yml
+++ b/.github/workflows/openwrt-ci-master.yml
@@ -1,6 +1,10 @@
-name: OpenWrt CI testing
+name: OpenWrt CI master branch testing
+
+on:
+  push:
+    branches:
+      - master
 
-on: [ push, pull_request ]
 env:
   CI_ENABLE_UNIT_TESTING: 1
   CI_TARGET_BUILD_DEPENDS: libnl-tiny ubus uci
@@ -13,7 +17,7 @@ jobs:
     steps:
       - uses: actions/checkout@v2
 
-      - uses: ynezz/gh-actions-openwrt-ci-native@v0.0.1
+      - uses: ynezz/gh-actions-openwrt-ci-native@v0.0.2
 
       - name: Upload build artifacts
         uses: actions/upload-artifact@v2
diff --git a/.github/workflows/openwrt-ci-pull-request.yml b/.github/workflows/openwrt-ci-pull-request.yml
new file mode 100644
index 00000000..5f0672b7
--- /dev/null
+++ b/.github/workflows/openwrt-ci-pull-request.yml
@@ -0,0 +1,55 @@
+name: OpenWrt CI pull request testing
+
+on:
+  push:
+    branches-ignore:
+      - master
+  pull_request:
+
+env:
+  CI_ENABLE_UNIT_TESTING: 1
+  CI_TARGET_BUILD_DEPENDS: libnl-tiny ubus uci
+
+jobs:
+  native_testing:
+    name: Various native checks
+    runs-on: ubuntu-20.04
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - uses: ynezz/gh-actions-openwrt-ci-native@v0.0.2
+        env:
+          CI_GCC_VERSION_LIST: 10
+
+      - name: Upload build artifacts
+        uses: actions/upload-artifact@v2
+        if: failure()
+        with:
+          name: native-build-artifacts
+          if-no-files-found: ignore
+          path: |
+            build/scan
+            tests/cram/**/*.t.err
+
+  sdk_build:
+    name: Build with OpenWrt ${{ matrix.sdk_platform }} SDK (out of tree)
+    runs-on: ubuntu-20.04
+
+    strategy:
+      fail-fast: false
+      matrix:
+        sdk_platform:
+          - ath79-generic
+          - imx6-generic
+          - malta-be
+          - mvebu-cortexa53
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Out of tree build with OpenWrt ${{ matrix.sdk_platform }} SDK
+        uses: ynezz/gh-actions-openwrt-ci-sdk@v0.0.1
+        env:
+          CI_TARGET_SDK_RELEASE: master
+          CI_TARGET_SDK_IMAGE: ${{ matrix.sdk_platform }}