diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 8ab8bd85e..a12f61e23 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -14,72 +14,72 @@ jobs: matrix: # First we test all OSes in the default configuration. target: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022] - configs: [default] + config: [default] # Then we include any extra configs we want to test for specific VMs. # Valgrind slows things down quite a bit, so start them first. include: - - { target: windows-2019, configs: cygwin-release } - - { target: windows-2022, configs: cygwin-release } - - { target: ubuntu-20.04, configs: valgrind-1 } - - { target: ubuntu-20.04, configs: valgrind-2 } - - { target: ubuntu-20.04, configs: valgrind-3 } - - { target: ubuntu-20.04, configs: valgrind-4 } - - { target: ubuntu-20.04, configs: valgrind-5 } - - { target: ubuntu-20.04, configs: valgrind-unit } - - { target: ubuntu-20.04, configs: c89 } - - { target: ubuntu-20.04, configs: clang-6.0 } - - { target: ubuntu-20.04, configs: clang-8 } - - { target: ubuntu-20.04, configs: clang-9 } - - { target: ubuntu-20.04, configs: clang-10 } - - { target: ubuntu-20.04, configs: clang-11 } - - { target: ubuntu-20.04, configs: clang-12-Werror } - - { target: ubuntu-20.04, configs: clang-sanitize-address } - - { target: ubuntu-20.04, configs: clang-sanitize-undefined } - - { target: ubuntu-20.04, configs: gcc-sanitize-address } - - { target: ubuntu-20.04, configs: gcc-sanitize-undefined } - - { target: ubuntu-20.04, configs: gcc-7 } - - { target: ubuntu-20.04, configs: gcc-8 } - - { target: ubuntu-20.04, configs: gcc-10 } - - { target: ubuntu-20.04, configs: gcc-11-Werror } - - { target: ubuntu-20.04, configs: pam } - - { target: ubuntu-20.04, configs: kitchensink } - - { target: ubuntu-20.04, configs: hardenedmalloc } - - { target: ubuntu-20.04, configs: tcmalloc } - - { target: ubuntu-20.04, configs: musl } - - { target: ubuntu-latest, configs: libressl-master } - - { target: ubuntu-latest, configs: libressl-2.2.9 } - - { target: ubuntu-latest, configs: libressl-2.8.3 } - - { target: ubuntu-latest, configs: libressl-3.0.2 } - - { target: ubuntu-latest, configs: libressl-3.2.6 } - - { target: ubuntu-latest, configs: libressl-3.3.6 } - - { target: ubuntu-latest, configs: libressl-3.4.3 } - - { target: ubuntu-latest, configs: libressl-3.5.3 } - - { target: ubuntu-latest, configs: libressl-3.6.1 } - - { target: ubuntu-latest, configs: openssl-master } - - { target: ubuntu-latest, configs: openssl-noec } - - { target: ubuntu-latest, configs: openssl-1.0.1 } - - { target: ubuntu-latest, configs: openssl-1.0.1u } - - { target: ubuntu-latest, configs: openssl-1.0.2u } - - { target: ubuntu-latest, configs: openssl-1.1.0h } - - { target: ubuntu-latest, configs: openssl-1.1.1 } - - { target: ubuntu-latest, configs: openssl-1.1.1k } - - { target: ubuntu-latest, configs: openssl-1.1.1n } - - { target: ubuntu-latest, configs: openssl-1.1.1q } - - { target: ubuntu-latest, configs: openssl-3.0.0 } - - { target: ubuntu-latest, configs: openssl-3.0.5 } - - { target: ubuntu-latest, configs: openssl-3.0.7 } - - { target: ubuntu-latest, configs: openssl-1.1.1_stable } - - { target: ubuntu-latest, configs: openssl-3.0 } # stable branch - - { target: ubuntu-22.04, configs: pam } - - { target: ubuntu-22.04, configs: krb5 } - - { target: ubuntu-22.04, configs: heimdal } - - { target: ubuntu-22.04, configs: libedit } - - { target: ubuntu-22.04, configs: sk } - - { target: ubuntu-22.04, configs: selinux } - - { target: ubuntu-22.04, configs: kitchensink } - - { target: ubuntu-22.04, configs: without-openssl } - - { target: macos-11, configs: pam } - - { target: macos-12, configs: pam } + - { target: windows-2019, config: cygwin-release } + - { target: windows-2022, config: cygwin-release } + - { target: ubuntu-20.04, config: valgrind-1 } + - { target: ubuntu-20.04, config: valgrind-2 } + - { target: ubuntu-20.04, config: valgrind-3 } + - { target: ubuntu-20.04, config: valgrind-4 } + - { target: ubuntu-20.04, config: valgrind-5 } + - { target: ubuntu-20.04, config: valgrind-unit } + - { target: ubuntu-20.04, config: c89 } + - { target: ubuntu-20.04, config: clang-6.0 } + - { target: ubuntu-20.04, config: clang-8 } + - { target: ubuntu-20.04, config: clang-9 } + - { target: ubuntu-20.04, config: clang-10 } + - { target: ubuntu-20.04, config: clang-11 } + - { target: ubuntu-20.04, config: clang-12-Werror } + - { target: ubuntu-20.04, config: clang-sanitize-address } + - { target: ubuntu-20.04, config: clang-sanitize-undefined } + - { target: ubuntu-20.04, config: gcc-sanitize-address } + - { target: ubuntu-20.04, config: gcc-sanitize-undefined } + - { target: ubuntu-20.04, config: gcc-7 } + - { target: ubuntu-20.04, config: gcc-8 } + - { target: ubuntu-20.04, config: gcc-10 } + - { target: ubuntu-20.04, config: gcc-11-Werror } + - { target: ubuntu-20.04, config: pam } + - { target: ubuntu-20.04, config: kitchensink } + - { target: ubuntu-20.04, config: hardenedmalloc } + - { target: ubuntu-20.04, config: tcmalloc } + - { target: ubuntu-20.04, config: musl } + - { target: ubuntu-latest, config: libressl-master } + - { target: ubuntu-latest, config: libressl-2.2.9 } + - { target: ubuntu-latest, config: libressl-2.8.3 } + - { target: ubuntu-latest, config: libressl-3.0.2 } + - { target: ubuntu-latest, config: libressl-3.2.6 } + - { target: ubuntu-latest, config: libressl-3.3.6 } + - { target: ubuntu-latest, config: libressl-3.4.3 } + - { target: ubuntu-latest, config: libressl-3.5.3 } + - { target: ubuntu-latest, config: libressl-3.6.1 } + - { target: ubuntu-latest, config: openssl-master } + - { target: ubuntu-latest, config: openssl-noec } + - { target: ubuntu-latest, config: openssl-1.0.1 } + - { target: ubuntu-latest, config: openssl-1.0.1u } + - { target: ubuntu-latest, config: openssl-1.0.2u } + - { target: ubuntu-latest, config: openssl-1.1.0h } + - { target: ubuntu-latest, config: openssl-1.1.1 } + - { target: ubuntu-latest, config: openssl-1.1.1k } + - { target: ubuntu-latest, config: openssl-1.1.1n } + - { target: ubuntu-latest, config: openssl-1.1.1q } + - { target: ubuntu-latest, config: openssl-3.0.0 } + - { target: ubuntu-latest, config: openssl-3.0.5 } + - { target: ubuntu-latest, config: openssl-3.0.7 } + - { target: ubuntu-latest, config: openssl-1.1.1_stable } + - { target: ubuntu-latest, config: openssl-3.0 } # stable branch + - { target: ubuntu-22.04, config: pam } + - { target: ubuntu-22.04, config: krb5 } + - { target: ubuntu-22.04, config: heimdal } + - { target: ubuntu-22.04, config: libedit } + - { target: ubuntu-22.04, config: sk } + - { target: ubuntu-22.04, config: selinux } + - { target: ubuntu-22.04, config: kitchensink } + - { target: ubuntu-22.04, config: without-openssl } + - { target: macos-11, config: pam } + - { target: macos-12, config: pam } runs-on: ${{ matrix.target }} steps: - name: set cygwin git params @@ -90,22 +90,22 @@ jobs: uses: cygwin/cygwin-install-action@master - uses: actions/checkout@main - name: setup CI system - run: sh ./.github/setup_ci.sh ${{ matrix.configs }} + run: sh ./.github/setup_ci.sh ${{ matrix.config }} - name: autoreconf run: sh -c autoreconf - name: configure - run: sh ./.github/configure.sh ${{ matrix.configs }} + run: sh ./.github/configure.sh ${{ matrix.config }} - name: save config uses: actions/upload-artifact@main with: - name: ${{ matrix.target }}-${{ matrix.configs }}-config + name: ${{ matrix.target }}-${{ matrix.config }}-config path: config.h - name: make clean run: make clean - name: make run: make -j2 - name: make tests - run: sh ./.github/run_test.sh ${{ matrix.configs }} + run: sh ./.github/run_test.sh ${{ matrix.config }} env: TEST_SSH_UNSAFE_PERMISSIONS: 1 TEST_SSH_HOSTBASED_AUTH: yes @@ -113,7 +113,7 @@ jobs: if: failure() uses: actions/upload-artifact@main with: - name: ${{ matrix.target }}-${{ matrix.configs }}-logs + name: ${{ matrix.target }}-${{ matrix.config }}-logs path: | config.h config.log diff --git a/.github/workflows/selfhosted.yml b/.github/workflows/selfhosted.yml index 3beec9e21..76acf2cfe 100644 --- a/.github/workflows/selfhosted.yml +++ b/.github/workflows/selfhosted.yml @@ -12,6 +12,7 @@ jobs: env: TARGET_TYPE: ${{ matrix.type }} 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 @@ -49,28 +50,28 @@ jobs: - sol10 - sol11 - win10 - configs: + config: - default # Then we include any extra configs we want to test for specific VMs. include: - - { target: ARM64, configs: pam } - - { target: debian-i386, configs: pam } - - { target: dfly30, configs: default, type: libvirt } - - { target: dfly30, configs: without-openssl} - - { target: dfly48, configs: pam } - - { target: dfly58, configs: pam } - - { target: dfly60, configs: pam } - - { target: dfly62, configs: pam } - - { target: fbsd10, configs: pam } - - { target: fbsd12, configs: pam } - - { target: fbsd13, configs: pam } - - { target: nbsd8, configs: pam } - - { target: nbsd9, configs: pam } - - { target: openindiana, configs: pam } - - { target: sol10, configs: pam } - - { target: sol11, configs: pam-krb5 } - - { target: sol11, configs: sol64 } - - { target: win10, configs: cygwin-release } + - { 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 } steps: - name: shutdown VM if running run: vmshutdown @@ -81,24 +82,24 @@ jobs: - name: startup VM run: vmstartup - name: configure - run: vmrun ./.github/configure.sh ${{ matrix.configs }} + run: vmrun ./.github/configure.sh ${{ matrix.config }} - name: save config uses: actions/upload-artifact@main with: - name: ${{ matrix.target }}-${{ matrix.configs }}-config + name: ${{ matrix.target }}-${{ matrix.config }}-config path: config.h - name: make clean run: vmrun make clean - name: make run: vmrun make - name: make tests - run: vmrun ./.github/run_test.sh ${{ matrix.configs }} + run: vmrun ./.github/run_test.sh ${{ matrix.config }} timeout-minutes: 600 - name: save logs if: failure() uses: actions/upload-artifact@main with: - name: ${{ matrix.target }}-${{ matrix.configs }}-logs + name: ${{ matrix.target }}-${{ matrix.config }}-logs path: | config.h config.log diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index 57a8cc68f..76515c544 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -10,12 +10,14 @@ 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: fail-fast: false matrix: target: [ obsdsnap, obsdsnap-i386 ] - configs: [ default, without-openssl, ubsan ] + config: [ default, without-openssl, ubsan ] steps: - name: shutdown VM if running run: vmshutdown @@ -28,11 +30,11 @@ jobs: - name: make clean run: vmrun "cd /usr/src/usr.bin/ssh && make obj && make clean && cd /usr/src/regress/usr.bin/ssh && make obj && make clean" - name: make - run: vmrun "cd /usr/src/usr.bin/ssh && case ${{ matrix.configs }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac" + run: vmrun "cd /usr/src/usr.bin/ssh && case ${{ matrix.config }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac" - name: make install run: vmrun "cd /usr/src/usr.bin/ssh && sudo make install" - name: make tests` - run: vmrun "cd /usr/src/regress/usr.bin/ssh && case ${{ matrix.configs }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac" + run: vmrun "cd /usr/src/regress/usr.bin/ssh && case ${{ matrix.config }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac" env: SUDO: sudo timeout-minutes: 300 @@ -40,7 +42,7 @@ jobs: if: failure() uses: actions/upload-artifact@main with: - name: ${{ matrix.target }}-${{ matrix.configs }}-logs + name: ${{ matrix.target }}-${{ matrix.config }}-logs path: | /usr/obj/regress/usr.bin/ssh/*.log - name: shutdown VM