diff options
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/c-cpp.yml | 81 | ||||
-rw-r--r-- | .github/workflows/selfhosted.yml | 93 | ||||
-rw-r--r-- | .github/workflows/upstream.yml | 43 |
3 files changed, 217 insertions, 0 deletions
diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml new file mode 100644 index 000000000..152ddaa4f --- /dev/null +++ b/.github/workflows/c-cpp.yml @@ -0,0 +1,81 @@ +name: C/C++ CI + +on: + push: + branches: [ master, ci ] + pull_request: + branches: [ master ] + +jobs: + ci: + if: github.repository != 'openssh/openssh-portable-selfhosted' + strategy: + fail-fast: false + matrix: + # First we test all OSes in the default configuration. + os: [ubuntu-20.04, ubuntu-18.04, macos-10.15, macos-11.0] + configs: [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: + - { os: ubuntu-20.04, configs: valgrind-1 } + - { os: ubuntu-20.04, configs: valgrind-2 } + - { os: ubuntu-20.04, configs: valgrind-3 } + - { os: ubuntu-20.04, configs: valgrind-4 } + - { os: ubuntu-20.04, configs: valgrind-unit } + - { os: ubuntu-20.04, configs: c89 } + - { os: ubuntu-20.04, configs: pam } + - { os: ubuntu-20.04, configs: kitchensink } + - { os: ubuntu-20.04, configs: hardenedmalloc } + - { os: ubuntu-latest, configs: libressl-master } + - { os: ubuntu-latest, configs: libressl-2.2.9 } + - { os: ubuntu-latest, configs: libressl-2.8.3 } + - { os: ubuntu-latest, configs: libressl-3.0.2 } + - { os: ubuntu-latest, configs: libressl-3.2.6 } + - { os: ubuntu-latest, configs: libressl-3.3.4 } + - { os: ubuntu-latest, configs: libressl-3.4.0 } + - { os: ubuntu-latest, configs: openssl-master } + - { os: ubuntu-latest, configs: openssl-noec } + - { os: ubuntu-latest, configs: openssl-1.0.1 } + - { os: ubuntu-latest, configs: openssl-1.0.1u } + - { os: ubuntu-latest, configs: openssl-1.0.2u } + - { os: ubuntu-latest, configs: openssl-1.1.0h } + - { os: ubuntu-latest, configs: openssl-1.1.1 } + - { os: ubuntu-latest, configs: openssl-1.1.1k } + - { os: ubuntu-latest, configs: openssl-3.0.0 } + - { os: ubuntu-latest, configs: openssl-1.1.1_stable } # stable branch + - { os: ubuntu-latest, configs: openssl-3.0 } # stable branch + - { os: ubuntu-18.04, configs: pam } + - { os: ubuntu-18.04, configs: kerberos5 } + - { os: ubuntu-18.04, configs: libedit } + - { os: ubuntu-18.04, configs: sk } + - { os: ubuntu-18.04, configs: selinux } + - { os: ubuntu-18.04, configs: kitchensink } + - { os: ubuntu-18.04, configs: without-openssl } + - { os: macos-10.15, configs: pam } + - { os: macos-11.0, configs: pam } + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - name: setup CI system + run: ./.github/setup_ci.sh ${{ matrix.configs }} + - name: autoreconf + run: autoreconf + - name: configure + run: ./.github/configure.sh ${{ matrix.configs }} + - name: make + run: make -j2 + - name: make tests + run: ./.github/run_test.sh ${{ matrix.configs }} + env: + TEST_SSH_UNSAFE_PERMISSIONS: 1 + - name: save logs + if: failure() + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.configs }}-logs + path: | + config.h + config.log + regress/*.log + regress/valgrind-out/ diff --git a/.github/workflows/selfhosted.yml b/.github/workflows/selfhosted.yml new file mode 100644 index 000000000..df6eca714 --- /dev/null +++ b/.github/workflows/selfhosted.yml @@ -0,0 +1,93 @@ +name: C/C++ CI self-hosted + +on: + push: + branches: [ master, ci ] + +jobs: + selfhosted: + if: github.repository == 'openssh/openssh-portable-selfhosted' + runs-on: ${{ matrix.os }} + env: + TARGET_HOST: ${{ matrix.os }} + strategy: + fail-fast: false + # We use a matrix in two parts: firstly all of the VMs are tested with the + # default config. "os" corresponds to a label associated with the worker. + matrix: + os: + - ARM64 + - bbone + - dfly30 + - dfly48 + - dfly58 + - dfly60 + - fbsd6 + - fbsd10 + - fbsd12 + - fbsd13 + - hurd + - minix3 + # - nbsd2 + - nbsd3 + - nbsd4 + - nbsd8 + - nbsd9 + - obsd51 + - obsd67 + - obsd68 + - obsd69 + - obsdsnap + - openindiana + # - rocky84 + - sol10 + - sol11 + - win10 + configs: + - default + # Then we include any extra configs we want to test for specific VMs. + include: + - { os: ARM64, configs: pam } + - { os: dfly30, configs: without-openssl} + - { os: dfly48, configs: pam } + - { os: dfly58, configs: pam } + - { os: dfly60, configs: pam } + - { os: fbsd6, configs: pam } + - { os: fbsd10, configs: pam } + - { os: fbsd12, configs: pam } + - { os: fbsd13, configs: pam } + - { os: nbsd8, configs: pam } + - { os: nbsd9, configs: pam } + - { os: openindiana, configs: pam } + # - { os: rocky84, configs: pam } + - { os: sol10, configs: pam } + - { os: sol11, configs: pam-krb5 } + - { os: sol11, configs: sol64 } + # - { os: sol11, configs: sol64-pam } + steps: + - uses: actions/checkout@v2 + - name: autoreconf + run: autoreconf + - name: shutdown VM if running + run: vmshutdown + - name: startup VM + run: vmstartup + - name: configure + run: vmrun ./.github/configure.sh ${{ matrix.configs }} + - name: make + run: vmrun make + - name: make tests + run: vmrun ./.github/run_test.sh ${{ matrix.configs }} + - name: save logs + if: failure() + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.configs }}-logs + path: | + config.h + config.log + regress/*.log + regress/valgrind-out/ + - name: shutdown VM + if: always() + run: vmshutdown diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml new file mode 100644 index 000000000..f0493c12d --- /dev/null +++ b/.github/workflows/upstream.yml @@ -0,0 +1,43 @@ +name: Upstream self-hosted + +on: + push: + branches: [ master, ci ] + +jobs: + selfhosted: + if: github.repository == 'openssh/openssh-portable-selfhosted' + runs-on: ${{ matrix.os }} + env: + TARGET_HOST: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ obsdsnap, obsdsnap-i386, obsd69, obsd68 ] + configs: [ default, without-openssl ] + steps: + - uses: actions/checkout@v2 + - name: shutdown VM if running + run: vmshutdown + - name: startup VM + run: vmstartup + - name: update source + run: vmrun "cd /usr/src && cvs up -dPA usr.bin/ssh regress/usr.bin/ssh" + - name: make clean + run: vmrun "cd /usr/src/usr.bin/ssh && make obj && make clean" + - name: make + run: vmrun "cd /usr/src/usr.bin/ssh && if test '${{ matrix.configs }}' = 'without-openssl'; then make OPENSSL=no; else make; fi" + - 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 && make obj && make clean && if test '${{ matrix.configs }}' = 'without-openssl'; then make SUDO=sudo OPENSSL=no; else make SUDO=sudo; fi" + - name: save logs + if: failure() + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.configs }}-logs + path: | + /usr/obj/regress/usr.bin/ssh/*.log + - name: shutdown VM + if: always() + run: vmshutdown |