[openssh-commits] [openssh] 07/08: Rework how selfhosted tests interact with runners.

git+noreply at mindrot.org git+noreply at mindrot.org
Mon Nov 28 22:39:39 AEDT 2022


This is an automated email from the git hooks/post-receive script.

dtucker pushed a commit to branch master
in repository openssh.

commit 9f2747e0bed3faca92679eae69aef10c95dc82f5
Author: Darren Tucker <dtucker at dtucker.net>
Date:   Sun Nov 27 15:26:22 2022 +1100

    Rework how selfhosted tests interact with runners.
    
    Previously there was one runner per test target (mostly VMs).  This had
    a few limitations:
     - multiple tests that ran on the same target (eg multiple build
       configs) were serialized on availability or that runner.
     - it needed manual balancing of VMs over host machines.
    
    To address this, make VMs that use ephemeral disks (ie most of them)
    all use a pool of runners with the "libvirt" label.  This requires that
    we distinguish between "host" and "target" for those.  Native runners
    and VMs with persistent disks (eg the constantly-updated snapshot ones)
    specify the same host and target.
    
    This should improve test throughput.
---
 .github/workflows/selfhosted.yml | 64 +++++++++++++++++++++-------------------
 .github/workflows/upstream.yml   |  1 -
 2 files changed, 34 insertions(+), 31 deletions(-)

diff --git a/.github/workflows/selfhosted.yml b/.github/workflows/selfhosted.yml
index 91a944a2..2d3a7bc4 100644
--- a/.github/workflows/selfhosted.yml
+++ b/.github/workflows/selfhosted.yml
@@ -7,25 +7,21 @@ on:
 jobs:
   selfhosted:
     if: github.repository == 'openssh/openssh-portable-selfhosted'
-    runs-on: ${{ matrix.target }}
+    runs-on: ${{ matrix.host }}
     timeout-minutes: 600
     env:
-      TARGET_TYPE: ${{ matrix.type }}
+      HOST: ${{ matrix.host }}
       TARGET_HOST: ${{ matrix.target }}
       TARGET_CONFIG: ${{ matrix.config }}
     strategy:
       fail-fast: false
       # We use a matrix in two parts: firstly all of the VMs are tested with the
       # default config.  "target" corresponds to a label associated with the
-      # worker.
+      # worker.  The default is an ephemeral VM running under libvirt.
       matrix:
         target:
-          - aix51
-          - ARM
-          - ARM64
           - alpine
           - debian-i386
-          - debian-riscv64
           - dfly30
           - dfly48
           - dfly58
@@ -43,35 +39,43 @@ jobs:
           - obsd67
           - obsd69
           - obsd70
-          - obsdsnap
           - openindiana
-          - openwrt-mips
-          - openwrt-mipsel
           - sol10
           - sol11
-          - win10
         config:
           - default
-        # Then we include any extra configs we want to test for specific VMs.
+        host:
+          - libvirt
         include:
-          - { target: ARM64,  config: pam }
-          - { target: debian-i386, config: pam }
-          - { target: dfly30, config: default, type: libvirt }
-          - { target: dfly30, config: without-openssl}
-          - { target: dfly48, config: pam }
-          - { target: dfly58, config: pam }
-          - { target: dfly60, config: pam }
-          - { target: dfly62, config: pam }
-          - { target: fbsd10, config: pam }
-          - { target: fbsd12, config: pam }
-          - { target: fbsd13, config: pam }
-          - { target: nbsd8,  config: pam }
-          - { target: nbsd9,  config: pam }
-          - { target: openindiana, config: pam }
-          - { target: sol10,  config: pam }
-          - { target: sol11,  config: pam-krb5 }
-          - { target: sol11,  config: sol64 }
-          - { target: win10,  config: cygwin-release }
+          # Then we include extra libvirt test configs.
+          - { target: aix51, config: default, host: libvirt }
+          - { target: debian-i386, config: pam, host: libvirt }
+          - { target: dfly30, config: without-openssl, host: libvirt}
+          - { target: dfly48, config: pam ,host: libvirt }
+          - { target: dfly58, config: pam, host: libvirt }
+          - { target: dfly60, config: pam, host: libvirt }
+          - { target: dfly62, config: pam, host: libvirt }
+          - { target: fbsd10, config: pam, host: libvirt }
+          - { target: fbsd12, config: pam, host: libvirt }
+          - { target: fbsd13, config: pam, host: libvirt }
+          - { target: nbsd8,  config: pam, host: libvirt }
+          - { target: nbsd9,  config: pam, host: libvirt }
+          - { target: openindiana, config: pam, host: libvirt }
+          - { target: sol10,  config: pam, host: libvirt }
+          - { target: sol11,  config: pam-krb5, host: libvirt }
+          - { target: sol11,  config: sol64, host: libvirt }
+          # VMs with persistent disks that have their own runner.
+          - { target: obsdsnap, config: default, host: obsdsnap }
+          - { target: obsdsnap-i386, config: default, host: obsdsnap-i386 }
+          - { target: win10, config: default, host: win10 }
+          - { target: win10, config: cygwin-release, host: win10 }
+          # Physical hosts, with either native runners or remote via ssh.
+          - { target: ARM, config: default, host: ARM }
+          - { target: ARM64, config: default, host: ARM64 }
+          - { target: ARM64, config: pam, host: ARM64 }
+          - { target: debian-riscv64, config: default, host: debian-riscv64 }
+          - { target: openwrt-mips, config: default, host: openwrt-mips }
+          - { target: openwrt-mipsel, config: default, host: openwrt-mipsel }
     steps:
     - name: shutdown VM if running
       run: vmshutdown
diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml
index 2b745536..bd5ca1b7 100644
--- a/.github/workflows/upstream.yml
+++ b/.github/workflows/upstream.yml
@@ -10,7 +10,6 @@ jobs:
     if: github.repository == 'openssh/openssh-portable-selfhosted'
     runs-on: ${{ matrix.target }}
     env:
-      TARGET_TYPE: ${{ matrix.type }}
       TARGET_HOST: ${{ matrix.target }}
       TARGET_CONFIG: ${{ matrix.config }}
     strategy:

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list