[openssh-commits] [openssh] branch master updated: Merge VM tests into a single workflow file.

git+noreply at mindrot.org git+noreply at mindrot.org
Tue Sep 23 16:57:29 AEST 2025


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

dtucker pushed a commit to branch master
in repository openssh.

The following commit(s) were added to refs/heads/master by this push:
     new eff358890 Merge VM tests into a single workflow file.
eff358890 is described below

commit eff358890a7cab1e7c2fec62e5b9914d2c1c8703
Author: Darren Tucker <dtucker at dtucker.net>
AuthorDate: Tue Sep 23 16:51:34 2025 +1000

    Merge VM tests into a single workflow file.
    
    Should make it easier to manage, although it may cause a few extra runs.
---
 .github/ci-status.md                  |   7 +-
 .github/workflows/vm-dragonflybsd.yml |  78 -------
 .github/workflows/vm-freebsd.yml      |  80 --------
 .github/workflows/vm-netbsd.yml       |  81 --------
 .github/workflows/vm-omnios.yml       |  70 -------
 .github/workflows/vm-openbsd.yml      |  66 ------
 .github/workflows/vm-solaris.yml      |  82 --------
 .github/workflows/vm.yml              | 371 ++++++++++++++++++++++++++++++++++
 8 files changed, 372 insertions(+), 463 deletions(-)

diff --git a/.github/ci-status.md b/.github/ci-status.md
index 49a069407..d5e2aad23 100644
--- a/.github/ci-status.md
+++ b/.github/ci-status.md
@@ -1,17 +1,12 @@
 master :
 [![C/C++ CI](../../../actions/workflows/c-cpp.yml/badge.svg)](../../../actions/workflows/c-cpp.yml?query=branch:master)
+[![VM CI](../../../actions/workflows/vm.yml/badge.svg)](../../../actions/workflows/vm.yml?query=branch:master)
 [![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:master)
 [![Upstream self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml?query=branch:master)
 [![CIFuzz](../../../actions/workflows/cifuzz.yml/badge.svg)](../../../actions/workflows/cifuzz.yml)
 [![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/openssh.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:openssh)
 [![Coverity Status](https://scan.coverity.com/projects/21341/badge.svg)](https://scan.coverity.com/projects/openssh-portable)
 <br>
-[![VM DragonFlyBSD](../../../actions/workflows/vm-dragonflybsd.yml/badge.svg)](../../../actions/workflows/vm-dragonflybsd.yml?query=branch:master)
-[![VM FreeBSD](../../../actions/workflows/vm-freebsd.yml/badge.svg)](../../../actions/workflows/vm-freebsd.yml?query=branch:master)
-[![VM OmniOS](../../../actions/workflows/vm-omnios.yml/badge.svg)](../../../actions/workflows/vm-omnios.yml?query=branch:master)
-[![VM OpenBSD](../../../actions/workflows/vm-openbsd.yml/badge.svg)](../../../actions/workflows/vm-openbsd.yml?query=branch:master)
-[![VM NetBSD](../../../actions/workflows/vm-netbsd.yml/badge.svg)](../../../actions/workflows/vm-netbsd.yml?query=branch:master)
-[![VM Solaris](../../../actions/workflows/vm-solaris.yml/badge.svg)](../../../actions/workflows/vm-solaris.yml?query=branch:master)
 
 10.0 :
 [![C/C++ CI](../../../actions/workflows/c-cpp.yml/badge.svg?branch=V_10_0)](../../../actions/workflows/c-cpp.yml?query=branch:V_10_0)
diff --git a/.github/workflows/vm-dragonflybsd.yml b/.github/workflows/vm-dragonflybsd.yml
deleted file mode 100644
index bf626b3bb..000000000
--- a/.github/workflows/vm-dragonflybsd.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-# For testing, you can set variables in your repo (Repo -> Settings ->
-# Security -> Actions -> Variables) to restrict the tests that are run
-# The supported variables are:
-#
-# RUN_ONLY_TARGET_CONFIG: Run only the single matching target and config,
-#   separated by spaces, eg "ubuntu-latest default".  All other tests will
-#   fail immediately.
-#
-# LTESTS: Override the set of tests run.
-
-name: VM DragonFlyBSD CI
-on:
-  push:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-dragonflybsd.yml' ]
-  pull_request:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-dragonflybsd.yml' ]
-
-jobs:
-  ci:
-    name: "dragonflybsd-${{ matrix.target }}"
-    if: github.repository != 'openssh/openssh-portable-selfhosted'
-    strategy:
-      fail-fast: false
-      matrix:
-        # First we test all OSes in the default configuration.
-        target:
-          - "6.4.2"
-        config: [default]
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout at main
-    - name: autoreconf
-      run: sh -c autoreconf
-
-    - name: start DragonFlyBSD ${{ matrix.target }} VM
-      uses: vmactions/dragonflybsd-vm at v1
-      with:
-        release: ${{ matrix.target }}
-        usesh: true
-        prepare: |
-          pkg install -y sudo
-          pw useradd builder -m
-          echo "builder ALL=(ALL:ALL) NOPASSWD: ALL" >>/usr/local/etc/sudoers
-          mkdir -p /var/empty /usr/local/etc
-          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
-
-    - name: set file perms
-      shell: dragonflybsd {0}
-      run: cd $GITHUB_WORKSPACE && chown -R builder .
-    - name: configure
-      shell: dragonflybsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-ssl-dir=/usr/local
-    - name: make clean
-      shell: dragonflybsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: make
-      shell: dragonflybsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
-    - name: make tests
-      shell: dragonflybsd {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder env SUDO=sudo make tests
-
-    - name: "PAM: configure"
-      shell: dragonflybsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-ssl-dir=/usr/local --with-pam
-    - name: "PAM: make clean"
-      shell: dragonflybsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: "PAM: make"
-      shell: dragonflybsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
-    - name: "PAM: make tests"
-      shell: dragonflybsd {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder env SUDO=sudo SSHD_CONFOPTS="UsePam yes" make tests
diff --git a/.github/workflows/vm-freebsd.yml b/.github/workflows/vm-freebsd.yml
deleted file mode 100644
index fa2d532f6..000000000
--- a/.github/workflows/vm-freebsd.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-# For testing, you can set variables in your repo (Repo -> Settings ->
-# Security -> Actions -> Variables) to restrict the tests that are run.
-# The supported variables are:
-#
-# RUN_ONLY_TARGET_CONFIG: Run only the single matching target and config,
-#   separated by spaces, eg "ubuntu-latest default".  All other tests will
-#   fail immediately.
-#
-# LTESTS: Override the set of tests run.
-
-name: VM FreeBSD CI
-on:
-  push:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-freebsd.yml' ]
-  pull_request:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-freebsd.yml' ]
-
-jobs:
-  ci:
-    name: "freebsd-${{ matrix.target }}"
-    if: github.repository != 'openssh/openssh-portable-selfhosted'
-    strategy:
-      fail-fast: false
-      matrix:
-        # First we test all OSes in the default configuration.
-        target:
-          - "13.5"
-          - "14.3"
-          # - "15.0" # "pkg" breaks with a libutil.so error...
-        config: [default]
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout at main
-    - name: autoreconf
-      run: sh -c autoreconf
-
-    - name: start FreeBSD ${{ matrix.target }} VM
-      uses: vmactions/freebsd-vm at v1
-      with:
-        release: ${{ matrix.target }}
-        usesh: true
-        prepare: |
-          pkg install -y sudo
-          pw useradd builder -m
-          echo "builder ALL=(ALL:ALL) NOPASSWD: ALL" >>/usr/local/etc/sudoers
-          mkdir -p /var/empty /usr/local/etc
-          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
-
-    - name: set file perms
-      shell: freebsd {0}
-      run: cd $GITHUB_WORKSPACE && chown -R builder .
-    - name: configure
-      shell: freebsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
-    - name: make clean
-      shell: freebsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: make
-      shell: freebsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
-    - name: make tests
-      shell: freebsd {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder env SUDO=sudo make tests
-
-    - name: "PAM: configure"
-      shell: freebsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-pam
-    - name: "PAM: make clean"
-      shell: freebsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: "PAM: make"
-      shell: freebsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
-    - name: "PAM: make tests"
-      shell: freebsd {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder env SUDO=sudo SSHD_CONFOPTS="UsePam yes" make tests
diff --git a/.github/workflows/vm-netbsd.yml b/.github/workflows/vm-netbsd.yml
deleted file mode 100644
index 324ed83bf..000000000
--- a/.github/workflows/vm-netbsd.yml
+++ /dev/null
@@ -1,81 +0,0 @@
-# For testing, you can set variables in your repo (Repo -> Settings ->
-# Security -> Actions -> Variables) to restrict the tests that are run.
-# The supported variables are:
-#
-# RUN_ONLY_TARGET_CONFIG: Run only the single matching target and config,
-#   separated by spaces, eg "ubuntu-latest default".  All other tests will
-#   fail immediately.
-#
-# LTESTS: Override the set of tests run.
-
-name: VM NetBSD CI
-on:
-  push:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-netbsd.yml' ]
-  pull_request:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-netbsd.yml' ]
-
-jobs:
-  ci:
-    name: "netbsd-${{ matrix.target }}"
-    if: github.repository != 'openssh/openssh-portable-selfhosted'
-    strategy:
-      fail-fast: false
-      matrix:
-        # First we test all OSes in the default configuration.
-        target:
-          - "9.0"
-          - "9.4"
-          - "10.0"
-          - "10.1"
-        config: [default]
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout at main
-    - name: autoreconf
-      run: sh -c autoreconf
-
-    - name: start NetBSD ${{ matrix.target }} VM
-      uses: vmactions/netbsd-vm at v1
-      with:
-        release: ${{ matrix.target }}
-        usesh: true
-        prepare: |
-          /usr/sbin/pkg_add sudo
-          /usr/sbin/useradd -m builder
-          echo "builder ALL=(ALL:ALL) NOPASSWD: ALL" >>/usr/pkg/etc/sudoers
-          mkdir -p /var/empty /usr/local/etc
-          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
-
-    - name: set file perms
-      shell: netbsd {0}
-      run: cd $GITHUB_WORKSPACE && /sbin/chown -R builder .
-    - name: configure
-      shell: netbsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
-    - name: make clean
-      shell: netbsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: make
-      shell: netbsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
-    - name: make tests
-      shell: netbsd {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder env SUDO=sudo make tests
-
-    - name: "PAM: configure"
-      shell: netbsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-pam
-    - name: "PAM: make clean"
-      shell: netbsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: "PAM: make"
-      shell: netbsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
-    - name: "PAM: make tests"
-      shell: netbsd {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder env SUDO=sudo SSHD_CONFOPTS="UsePam yes" make tests
diff --git a/.github/workflows/vm-omnios.yml b/.github/workflows/vm-omnios.yml
deleted file mode 100644
index b60630657..000000000
--- a/.github/workflows/vm-omnios.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-# For testing, you can set variables in your repo (Repo -> Settings ->
-# Security -> Actions -> Variables) to restrict the tests that are run.
-# The supported variables are:
-#
-# RUN_ONLY_TARGET_CONFIG: Run only the single matching target and config,
-#   separated by spaces, eg "ubuntu-latest default".  All other tests will
-#   fail immediately.
-#
-# LTESTS: Override the set of tests run.
-#
-# TODO: fix build --with-pam
-# TODO: get tests working with SUDO=sudo SSHD_CONFOPTS="UsePam yes"
-
-name: VM OmniOS CI
-on:
-  push:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-omnios.yml' ]
-  pull_request:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-omnios.yml' ]
-
-jobs:
-  ci:
-    name: "omnios-${{ matrix.target }}"
-    if: github.repository != 'openssh/openssh-portable-selfhosted'
-    strategy:
-      fail-fast: false
-      matrix:
-        # First we test all OSes in the default configuration.
-        target:
-          - "r151054"
-        config: [default]
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout at main
-    - name: autoreconf
-      run: sh -c autoreconf
-
-    - name: start OmniOS ${{ matrix.target }} VM
-      uses: vmactions/omnios-vm at v1
-      with:
-        release: ${{ matrix.target }}
-        usesh: true
-        prepare: |
-          set -x
-          pfexec pkg refresh
-          pfexec pkg install build-essential
-          useradd -m builder
-          sed -e "s/^root.*ALL$/root ALL=(ALL) NOPASSWD: ALL/" /etc/sudoers >>/tmp/sudoers
-          mv /tmp/sudoers /etc/sudoers
-          echo "builder ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
-          mkdir -p /var/empty /usr/local/etc
-          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
-
-    - name: set file perms
-      shell: omnios {0}
-      run: cd $GITHUB_WORKSPACE && chown -R builder .
-    - name: configure
-      shell: omnios {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
-    - name: make clean
-      shell: omnios {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: make
-      shell: omnios {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make
-    - name: make tests
-      shell: omnios {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder make tests
diff --git a/.github/workflows/vm-openbsd.yml b/.github/workflows/vm-openbsd.yml
deleted file mode 100644
index 402ab899f..000000000
--- a/.github/workflows/vm-openbsd.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-# For testing, you can set variables in your repo (Repo -> Settings ->
-# Security -> Actions -> Variables) to restrict the tests that are run.
-# The supported variables are: 
-#
-# RUN_ONLY_TARGET_CONFIG: Run only the single matching target and config,
-#   separated by spaces, eg "ubuntu-latest default".  All other tests will
-#   fail immediately.
-#
-# LTESTS: Override the set of tests run.
-
-name: VM OpenBSD CI
-on:
-  push:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-openbsd.yml' ]
-  pull_request:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-openbsd.yml' ]
-
-jobs:
-  ci:
-    name: "openbsd-${{ matrix.target }}"
-    if: github.repository != 'openssh/openssh-portable-selfhosted'
-    strategy:
-      fail-fast: false
-      matrix:
-        # First we test all OSes in the default configuration.
-        target:
-          - "7.3"
-          - "7.5"
-          - "7.6"
-          - "7.7"
-        config: [default]
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout at main
-    - name: autoreconf
-      run: sh -c autoreconf
-
-    - name: start OpenBSD ${{ matrix.target }} VM
-      uses: vmactions/openbsd-vm at v1
-      with:
-        release: ${{ matrix.target }}
-        usesh: true
-        prepare: |
-          env PKG_PATH=https://ftp.openbsd.org/pub/OpenBSD/${{matrix.target}}/packages/amd64 pkg_add sudo--
-          useradd -m builder
-          echo "builder ALL=(ALL:ALL) NOPASSWD: ALL" >>/etc/sudoers
-          mkdir -p /var/empty /usr/local/etc
-          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
-
-    - name: set file perms
-      shell: openbsd {0}
-      run: cd $GITHUB_WORKSPACE && chown -R builder .
-    - name: configure
-      shell: openbsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
-    - name: make clean
-      shell: openbsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: make
-      shell: openbsd {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
-    - name: make tests
-      shell: openbsd {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder env SUDO=sudo make tests
diff --git a/.github/workflows/vm-solaris.yml b/.github/workflows/vm-solaris.yml
deleted file mode 100644
index 87778233f..000000000
--- a/.github/workflows/vm-solaris.yml
+++ /dev/null
@@ -1,82 +0,0 @@
-# For testing, you can set variables in your repo (Repo -> Settings ->
-# Security -> Actions -> Variables) to restrict the tests that are run.
-# The supported variables are:
-#
-# RUN_ONLY_TARGET_CONFIG: Run only the single matching target and config,
-#   separated by spaces, eg "ubuntu-latest default".  All other tests will
-#   fail immediately.
-#
-# LTESTS: Override the set of tests run.
-#
-# TODO: get tests working with SUDO=sudo SSHD_CONFOPTS="UsePam yes"
-
-name: VM Solaris CI
-on:
-  push:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-solaris.yml' ]
-  pull_request:
-    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm-solaris.yml' ]
-
-jobs:
-  ci:
-    name: "solaris-${{ matrix.target }}"
-    if: github.repository != 'openssh/openssh-portable-selfhosted'
-    strategy:
-      fail-fast: false
-      matrix:
-        # First we test all OSes in the default configuration.
-        target:
-          - "11.4-gcc"
-        config: [default]
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout at main
-    - name: autoreconf
-      run: sh -c autoreconf
-
-    - name: start Solaris ${{ matrix.target }} VM
-      uses: vmactions/solaris-vm at v1
-      with:
-        release: ${{ matrix.target }}
-        usesh: true
-        prepare: |
-          set -x
-          useradd -m builder
-          sed -e "s/^root.*ALL$/root ALL=(ALL) NOPASSWD: ALL/" /etc/sudoers >>/tmp/sudoers
-          mv /tmp/sudoers /etc/sudoers
-          echo "builder ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
-          mkdir -p /var/empty /usr/local/etc
-          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
-
-    - name: set file perms
-      shell: solaris {0}
-      run: cd $GITHUB_WORKSPACE && chown -R builder .
-    - name: configure
-      shell: solaris {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
-    - name: make clean
-      shell: solaris {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: make
-      shell: solaris {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make
-    - name: make tests
-      shell: solaris {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder make tests
-
-    - name: "PAM: configure"
-      shell: solaris {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-pam
-    - name: "PAM: make clean"
-      shell: solaris {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
-    - name: "PAM: make"
-      shell: solaris {0}
-      run: cd $GITHUB_WORKSPACE && sudo -u builder make
-    - name: "PAM: make tests"
-      shell: solaris {0}
-      run: |
-        cd $GITHUB_WORKSPACE
-        sudo -u builder make tests
diff --git a/.github/workflows/vm.yml b/.github/workflows/vm.yml
new file mode 100644
index 000000000..90cf8aaf0
--- /dev/null
+++ b/.github/workflows/vm.yml
@@ -0,0 +1,371 @@
+# For testing, you can set variables in your repo (Repo -> Settings ->
+# Security -> Actions -> Variables) to restrict the tests that are run
+# The supported variables are:
+#
+# RUN_ONLY_TARGET_CONFIG: Run only the single matching target and config,
+#   separated by spaces, eg "ubuntu-latest default".  All other tests will
+#   fail immediately.
+#
+# LTESTS: Override the set of tests run.
+
+name: VM CI
+on:
+  push:
+    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm.yml' ]
+  pull_request:
+    paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/vm.yml' ]
+
+jobs:
+  dragonflybsd:
+    name: "dragonflybsd-${{ matrix.target }}"
+    if: github.repository != 'openssh/openssh-portable-selfhosted'
+    strategy:
+      fail-fast: false
+      matrix:
+        # First we test all OSes in the default configuration.
+        target:
+          - "6.4.2"
+        config: [default]
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout at main
+    - name: autoreconf
+      run: sh -c autoreconf
+
+    - name: start DragonFlyBSD ${{ matrix.target }} VM
+      uses: vmactions/dragonflybsd-vm at v1
+      with:
+        release: ${{ matrix.target }}
+        usesh: true
+        prepare: |
+          pkg install -y sudo
+          pw useradd builder -m
+          echo "builder ALL=(ALL:ALL) NOPASSWD: ALL" >>/usr/local/etc/sudoers
+          mkdir -p /var/empty /usr/local/etc
+          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
+
+    - name: set file perms
+      shell: dragonflybsd {0}
+      run: cd $GITHUB_WORKSPACE && chown -R builder .
+    - name: configure
+      shell: dragonflybsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-ssl-dir=/usr/local
+    - name: make clean
+      shell: dragonflybsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: make
+      shell: dragonflybsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
+    - name: make tests
+      shell: dragonflybsd {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder env SUDO=sudo make tests
+
+    - name: "PAM: configure"
+      shell: dragonflybsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-ssl-dir=/usr/local --with-pam
+    - name: "PAM: make clean"
+      shell: dragonflybsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: "PAM: make"
+      shell: dragonflybsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
+    - name: "PAM: make tests"
+      shell: dragonflybsd {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder env SUDO=sudo SSHD_CONFOPTS="UsePam yes" make tests
+
+  freebsd:
+    name: "freebsd-${{ matrix.target }}"
+    if: github.repository != 'openssh/openssh-portable-selfhosted'
+    strategy:
+      fail-fast: false
+      matrix:
+        # First we test all OSes in the default configuration.
+        target:
+          - "13.5"
+          - "14.3"
+          # - "15.0" # "pkg" breaks with a libutil.so error...
+        config: [default]
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout at main
+    - name: autoreconf
+      run: sh -c autoreconf
+
+    - name: start FreeBSD ${{ matrix.target }} VM
+      uses: vmactions/freebsd-vm at v1
+      with:
+        release: ${{ matrix.target }}
+        usesh: true
+        prepare: |
+          pkg install -y sudo
+          pw useradd builder -m
+          echo "builder ALL=(ALL:ALL) NOPASSWD: ALL" >>/usr/local/etc/sudoers
+          mkdir -p /var/empty /usr/local/etc
+          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
+
+    - name: set file perms
+      shell: freebsd {0}
+      run: cd $GITHUB_WORKSPACE && chown -R builder .
+    - name: configure
+      shell: freebsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
+    - name: make clean
+      shell: freebsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: make
+      shell: freebsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
+    - name: make tests
+      shell: freebsd {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder env SUDO=sudo make tests
+
+    - name: "PAM: configure"
+      shell: freebsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-pam
+    - name: "PAM: make clean"
+      shell: freebsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: "PAM: make"
+      shell: freebsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
+    - name: "PAM: make tests"
+      shell: freebsd {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder env SUDO=sudo SSHD_CONFOPTS="UsePam yes" make tests
+
+
+  netbsd:
+    name: "netbsd-${{ matrix.target }}"
+    if: github.repository != 'openssh/openssh-portable-selfhosted'
+    strategy:
+      fail-fast: false
+      matrix:
+        # First we test all OSes in the default configuration.
+        target:
+          - "9.0"
+          - "9.4"
+          - "10.0"
+          - "10.1"
+        config: [default]
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout at main
+    - name: autoreconf
+      run: sh -c autoreconf
+
+    - name: start NetBSD ${{ matrix.target }} VM
+      uses: vmactions/netbsd-vm at v1
+      with:
+        release: ${{ matrix.target }}
+        usesh: true
+        prepare: |
+          /usr/sbin/pkg_add sudo
+          /usr/sbin/useradd -m builder
+          echo "builder ALL=(ALL:ALL) NOPASSWD: ALL" >>/usr/pkg/etc/sudoers
+          mkdir -p /var/empty /usr/local/etc
+          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
+
+    - name: set file perms
+      shell: netbsd {0}
+      run: cd $GITHUB_WORKSPACE && /sbin/chown -R builder .
+    - name: configure
+      shell: netbsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
+    - name: make clean
+      shell: netbsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: make
+      shell: netbsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
+    - name: make tests
+      shell: netbsd {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder env SUDO=sudo make tests
+
+    - name: "PAM: configure"
+      shell: netbsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-pam
+    - name: "PAM: make clean"
+      shell: netbsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: "PAM: make"
+      shell: netbsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
+    - name: "PAM: make tests"
+      shell: netbsd {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder env SUDO=sudo SSHD_CONFOPTS="UsePam yes" make tests
+
+
+  ominios:
+    name: "omnios-${{ matrix.target }}"
+    if: github.repository != 'openssh/openssh-portable-selfhosted'
+    strategy:
+      fail-fast: false
+      matrix:
+        # First we test all OSes in the default configuration.
+        target:
+          - "r151054"
+        config: [default]
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout at main
+    - name: autoreconf
+      run: sh -c autoreconf
+
+    - name: start OmniOS ${{ matrix.target }} VM
+      uses: vmactions/omnios-vm at v1
+      with:
+        release: ${{ matrix.target }}
+        usesh: true
+        prepare: |
+          set -x
+          pfexec pkg refresh
+          pfexec pkg install build-essential
+          useradd -m builder
+          sed -e "s/^root.*ALL$/root ALL=(ALL) NOPASSWD: ALL/" /etc/sudoers >>/tmp/sudoers
+          mv /tmp/sudoers /etc/sudoers
+          echo "builder ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
+          mkdir -p /var/empty /usr/local/etc
+          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
+
+    - name: set file perms
+      shell: omnios {0}
+      run: cd $GITHUB_WORKSPACE && chown -R builder .
+    - name: configure
+      shell: omnios {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
+    - name: make clean
+      shell: omnios {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: make
+      shell: omnios {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make
+    - name: make tests
+      shell: omnios {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder make tests
+
+
+  openbsd:
+    name: "openbsd-${{ matrix.target }}"
+    if: github.repository != 'openssh/openssh-portable-selfhosted'
+    strategy:
+      fail-fast: false
+      matrix:
+        # First we test all OSes in the default configuration.
+        target:
+          - "7.3"
+          - "7.5"
+          - "7.6"
+          - "7.7"
+        config: [default]
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout at main
+    - name: autoreconf
+      run: sh -c autoreconf
+
+    - name: start OpenBSD ${{ matrix.target }} VM
+      uses: vmactions/openbsd-vm at v1
+      with:
+        release: ${{ matrix.target }}
+        usesh: true
+        prepare: |
+          env PKG_PATH=https://ftp.openbsd.org/pub/OpenBSD/${{matrix.target}}/packages/amd64 pkg_add sudo--
+          useradd -m builder
+          echo "builder ALL=(ALL:ALL) NOPASSWD: ALL" >>/etc/sudoers
+          mkdir -p /var/empty /usr/local/etc
+          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
+
+    - name: set file perms
+      shell: openbsd {0}
+      run: cd $GITHUB_WORKSPACE && chown -R builder .
+    - name: configure
+      shell: openbsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
+    - name: make clean
+      shell: openbsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: make
+      shell: openbsd {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make -j4
+    - name: make tests
+      shell: openbsd {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder env SUDO=sudo make tests
+
+
+  solaris:
+    name: "solaris-${{ matrix.target }}"
+    if: github.repository != 'openssh/openssh-portable-selfhosted'
+    strategy:
+      fail-fast: false
+      matrix:
+        # First we test all OSes in the default configuration.
+        target:
+          - "11.4-gcc"
+        config: [default]
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout at main
+    - name: autoreconf
+      run: sh -c autoreconf
+
+    - name: start Solaris ${{ matrix.target }} VM
+      uses: vmactions/solaris-vm at v1
+      with:
+        release: ${{ matrix.target }}
+        usesh: true
+        prepare: |
+          set -x
+          useradd -m builder
+          sed -e "s/^root.*ALL$/root ALL=(ALL) NOPASSWD: ALL/" /etc/sudoers >>/tmp/sudoers
+          mv /tmp/sudoers /etc/sudoers
+          echo "builder ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
+          mkdir -p /var/empty /usr/local/etc
+          cp $GITHUB_WORKSPACE/moduli /usr/local/etc/moduli
+
+    - name: set file perms
+      shell: solaris {0}
+      run: cd $GITHUB_WORKSPACE && chown -R builder .
+    - name: configure
+      shell: solaris {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure
+    - name: make clean
+      shell: solaris {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: make
+      shell: solaris {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make
+    - name: make tests
+      shell: solaris {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder make tests
+
+    - name: "PAM: configure"
+      shell: solaris {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder ./configure --with-pam
+    - name: "PAM: make clean"
+      shell: solaris {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make clean
+    - name: "PAM: make"
+      shell: solaris {0}
+      run: cd $GITHUB_WORKSPACE && sudo -u builder make
+    - name: "PAM: make tests"
+      shell: solaris {0}
+      run: |
+        cd $GITHUB_WORKSPACE
+        sudo -u builder make tests

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


More information about the openssh-commits mailing list