[Tarantool-patches] [PATCH luajit 2/2] ci: use strategy matrix for integration workflow

Igor Munkin imun at tarantool.org
Thu Jan 12 17:51:37 MSK 2023


Considering the changes made in scope of the previous commit, it has
been decided to dispatch LuaJIT integration testing to the runner the
similar way (i.e. by using the pair of <matrix.ARCH> + <matrix.OS>
values). As a result a new job with quite similar strategy matrix[1] is
added as a successor for <test-luajit> job. The new job uses the new
version (with <inputs.arch> and <inputs.os> parameters introduced and
optional <inputs.host> obsolete parameter) of LuaJIT integration
workflow from tarantool/tarantool repo.

[1]: https://docs.github.com/en/actions/using-workflows/reusing-workflows#using-a-matrix-strategy-with-a-reusable-workflow

Signed-off-by: Igor Munkin <imun at tarantool.org>
---
 .github/workflows/testing.yml | 190 ++++++----------------------------
 1 file changed, 30 insertions(+), 160 deletions(-)

diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml
index 5558e3ea..d707ce83 100644
--- a/.github/workflows/testing.yml
+++ b/.github/workflows/testing.yml
@@ -77,173 +77,43 @@ jobs:
         run: cmake --build . --parallel --target test
         working-directory: ${{ env.BUILDDIR }}
 
-  test-tarantool-linux-x86_64-debug-wo-GC64:
-    name: Tarantool (Linux/x86_64) Debug GC64:OFF
-    needs: test-luajit
-    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
-    with:
-      CMAKE_EXTRA_PARAMS: >
-        -G Ninja
-        -DCMAKE_BUILD_TYPE=Debug
-        -DLUAJIT_ENABLE_GC64=OFF
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      GC64: OFF
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: Debug
-      host: ubuntu-20.04-self-hosted
-      revision: ${{ github.sha }}
-  test-tarantool-linux-x86_64-debug-w-GC64:
-    name: Tarantool (Linux/x86_64) Debug GC64:ON
-    needs: test-luajit
-    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
-    with:
-      CMAKE_EXTRA_PARAMS: >
-        -G Ninja
-        -DCMAKE_BUILD_TYPE=Debug
-        -DLUAJIT_ENABLE_GC64=ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      GC64: ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: Debug
-      host: ubuntu-20.04-self-hosted
-      revision: ${{ github.sha }}
-  test-tarantool-linux-x86_64-release-wo-GC64:
-    name: Tarantool (Linux/x86_64) Release GC64:OFF
-    needs: test-luajit
-    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
-    with:
-      CMAKE_EXTRA_PARAMS: >
-        -G Ninja
-        -DCMAKE_BUILD_TYPE=RelWithDebInfo
-        -DLUAJIT_ENABLE_GC64=OFF
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      GC64: OFF
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: RelWithDebInfo
-      host: ubuntu-20.04-self-hosted
-      revision: ${{ github.sha }}
-  test-tarantool-linux-x86_64-release-w-GC64:
-    name: Tarantool (Linux/x86_64) Release GC64:ON
-    needs: test-luajit
-    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
-    with:
-      CMAKE_EXTRA_PARAMS: >
-        -G Ninja
-        -DCMAKE_BUILD_TYPE=RelWithDebInfo
-        -DLUAJIT_ENABLE_GC64=ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      GC64: ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: RelWithDebInfo
-      host: ubuntu-20.04-self-hosted
-      revision: ${{ github.sha }}
-  test-tarantool-linux-aarch64-debug-w-GC64:
-    name: Tarantool (Linux/aarch64) Debug GC64:ON
-    needs: test-luajit
-    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
-    with:
-      CMAKE_EXTRA_PARAMS: >
-        -G Ninja
-        -DCMAKE_BUILD_TYPE=Debug
-        -DLUAJIT_ENABLE_GC64=ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      GC64: ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: Debug
-      host: graviton
-      revision: ${{ github.sha }}
-  test-tarantool-linux-aarch64-release-w-GC64:
-    name: Tarantool (Linux/aarch64) Release GC64:ON
-    needs: test-luajit
-    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
-    with:
-      CMAKE_EXTRA_PARAMS: >
-        -G Ninja
-        -DCMAKE_BUILD_TYPE=RelWithDebInfo
-        -DLUAJIT_ENABLE_GC64=ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      GC64: ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: RelWithDebInfo
-      host: graviton
-      revision: ${{ github.sha }}
-  test-tarantool-macos-x86_64-debug-w-GC64:
-    name: Tarantool (macOS/x86_64) Debug GC64:ON
-    needs: test-luajit
-    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
-    with:
-      CMAKE_EXTRA_PARAMS: >
-        -G Ninja
-        -DCMAKE_BUILD_TYPE=Debug
-        -DLUAJIT_ENABLE_GC64=ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      GC64: ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: Debug
-      host: macos-11
-      revision: ${{ github.sha }}
-  test-tarantool-macos-x86_64-release-w-GC64:
-    name: Tarantool (macOS/x86_64) Release GC64:ON
-    needs: test-luajit
-    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
-    with:
-      CMAKE_EXTRA_PARAMS: >
-        -G Ninja
-        -DCMAKE_BUILD_TYPE=RelWithDebInfo
-        -DLUAJIT_ENABLE_GC64=ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      GC64: ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: RelWithDebInfo
-      host: macos-11
-      revision: ${{ github.sha }}
-  test-tarantool-macos-m1-debug-w-GC64:
-    name: Tarantool (macOS/M1) Debug GC64:ON
-    needs: test-luajit
-    uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
-    with:
-      CMAKE_EXTRA_PARAMS: >
-        -G Ninja
-        -DCMAKE_BUILD_TYPE=Debug
-        -DLUAJIT_ENABLE_GC64=ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      GC64: ON
-      # FIXME: This parameter is obsolete, drop it when
-      # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: Debug
-      host: macos-11-m1
-      revision: ${{ github.sha }}
-  test-tarantool-macos-m1-release-w-GC64:
-    name: Tarantool (macOS/M1) Release GC64:ON
+
+  test-tarantool:
+    strategy:
+      fail-fast: false
+      matrix:
+        ARCH: [ARM64, x86_64]
+        BUILDTYPE: [Debug, Release]
+        GC64: [ON, OFF]
+        OS: [Linux, macOS]
+        include:
+          - BUILDTYPE: Debug
+            CMAKEFLAGS: -DCMAKE_BUILD_TYPE=Debug
+          - BUILDTYPE: Release
+            CMAKEFLAGS: -DCMAKE_BUILD_TYPE=RelWithDebInfo
+        exclude:
+          - ARCH: ARM64
+            GC64: OFF
+          - OS: macOS
+            GC64: OFF
+    name: >
+      Tarantool
+      (${{ matrix.OS }}/${{ matrix.ARCH }})
+      ${{ matrix.BUILDTYPE }}
+      GC64:${{ matrix.GC64 }}
     needs: test-luajit
     uses: tarantool/tarantool/.github/workflows/luajit-integration.yml at master
     with:
       CMAKE_EXTRA_PARAMS: >
         -G Ninja
-        -DCMAKE_BUILD_TYPE=RelWithDebInfo
-        -DLUAJIT_ENABLE_GC64=ON
+        ${{ matrix.CMAKEFLAGS }}
+        -DLUAJIT_ENABLE_GC64=${{ matrix.GC64 }}
       # FIXME: This parameter is obsolete, drop it when
       # CMAKE_EXTRA_PARAMS is activated.
-      GC64: ON
+      GC64: ${{ matrix.GC64 }}
+      arch: ${{ matrix.ARCH }}
+      os: ${{ matrix.OS }}
       # FIXME: This parameter is obsolete, drop it when
       # CMAKE_EXTRA_PARAMS is activated.
-      buildtype: RelWithDebInfo
-      host: macos-11-m1
+      buildtype: ${{ matrix.BUILDTYPE }}
       revision: ${{ github.sha }}
-- 
2.34.0



More information about the Tarantool-patches mailing list