From eff358890a7cab1e7c2fec62e5b9914d2c1c8703 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 23 Sep 2025 16:51:34 +1000 Subject: [PATCH] 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(-) delete mode 100644 .github/workflows/vm-dragonflybsd.yml delete mode 100644 .github/workflows/vm-freebsd.yml delete mode 100644 .github/workflows/vm-netbsd.yml delete mode 100644 .github/workflows/vm-omnios.yml delete mode 100644 .github/workflows/vm-openbsd.yml delete mode 100644 .github/workflows/vm-solaris.yml create mode 100644 .github/workflows/vm.yml 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)
-[![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@main - - name: autoreconf - run: sh -c autoreconf - - - name: start DragonFlyBSD ${{ matrix.target }} VM - uses: vmactions/dragonflybsd-vm@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@main - - name: autoreconf - run: sh -c autoreconf - - - name: start FreeBSD ${{ matrix.target }} VM - uses: vmactions/freebsd-vm@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@main - - name: autoreconf - run: sh -c autoreconf - - - name: start NetBSD ${{ matrix.target }} VM - uses: vmactions/netbsd-vm@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@main - - name: autoreconf - run: sh -c autoreconf - - - name: start OmniOS ${{ matrix.target }} VM - uses: vmactions/omnios-vm@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@main - - name: autoreconf - run: sh -c autoreconf - - - name: start OpenBSD ${{ matrix.target }} VM - uses: vmactions/openbsd-vm@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@main - - name: autoreconf - run: sh -c autoreconf - - - name: start Solaris ${{ matrix.target }} VM - uses: vmactions/solaris-vm@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@main + - name: autoreconf + run: sh -c autoreconf + + - name: start DragonFlyBSD ${{ matrix.target }} VM + uses: vmactions/dragonflybsd-vm@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@main + - name: autoreconf + run: sh -c autoreconf + + - name: start FreeBSD ${{ matrix.target }} VM + uses: vmactions/freebsd-vm@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@main + - name: autoreconf + run: sh -c autoreconf + + - name: start NetBSD ${{ matrix.target }} VM + uses: vmactions/netbsd-vm@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@main + - name: autoreconf + run: sh -c autoreconf + + - name: start OmniOS ${{ matrix.target }} VM + uses: vmactions/omnios-vm@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@main + - name: autoreconf + run: sh -c autoreconf + + - name: start OpenBSD ${{ matrix.target }} VM + uses: vmactions/openbsd-vm@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@main + - name: autoreconf + run: sh -c autoreconf + + - name: start Solaris ${{ matrix.target }} VM + uses: vmactions/solaris-vm@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 -- 2.47.3