diff options
| author | Ed Maste <emaste@FreeBSD.org> | 2021-04-23 19:10:38 +0000 |
|---|---|---|
| committer | Ed Maste <emaste@FreeBSD.org> | 2021-04-23 19:10:38 +0000 |
| commit | 206be79acbdeb88ea254ac622a60a4ee8015c5f6 (patch) | |
| tree | a2b2db1cfcb757172a91d03ca0c8805185a76e1b /.github/workflows | |
| parent | 3bbd8dc96b4466d8e4f850fc0adf7d02e1df2dc7 (diff) | |
Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/c-cpp.yml | 56 | ||||
| -rw-r--r-- | .github/workflows/selfhosted.yml | 68 |
2 files changed, 108 insertions, 16 deletions
diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 2189756bbf8f..c2e9c5327ecb 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -7,22 +7,35 @@ on: branches: [ master ] jobs: - build: - - runs-on: ubuntu-latest - + ci: + if: github.repository != 'openssh/openssh-portable-selfhosted' strategy: + fail-fast: false matrix: - configs: - - "" - - "--with-kerberos5" - - "--with-libedit" - - "--with-pam" - - "--with-security-key-builtin" - - "--with-selinux" - - "--with-kerberos5 --with-libedit --with-pam --with-security-key-builtin --with-selinux" - - "--without-openssl --without-zlib" - + # First we test all OSes in the default configuration. + os: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04, macos-10.15] + 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: pam } + - { os: ubuntu-20.04, configs: kitchensink } + - { os: ubuntu-20.04, configs: hardenedmalloc } + - { os: ubuntu-20.04, configs: libressl-head } + - { os: ubuntu-20.04, configs: openssl-head } + - { 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: ubuntu-16.04, configs: pam } + - { os: ubuntu-16.04, configs: kitchensink } + - { os: macos-10.15, configs: pam } + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - name: setup CI system @@ -30,10 +43,21 @@ jobs: - name: autoreconf run: autoreconf - name: configure - run: ./configure ${{ matrix.configs }} + run: ./.github/configure.sh ${{ matrix.configs }} - name: make - run: make + run: make -j2 + - name: install moduli + run: sudo sh -c "mkdir -p /usr/local/etc/; cp moduli /usr/local/etc/" - name: make tests run: ./.github/run_test.sh ${{ matrix.configs }} env: + SUDO: sudo TEST_SSH_UNSAFE_PERMISSIONS: 1 + - name: save regress logs + if: failure() + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.configs }}-regress-logs + path: | + regress/*.log + regress/valgrind-out/ diff --git a/.github/workflows/selfhosted.yml b/.github/workflows/selfhosted.yml new file mode 100644 index 000000000000..aadcb42b4ddc --- /dev/null +++ b/.github/workflows/selfhosted.yml @@ -0,0 +1,68 @@ +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 }} + SUDO: sudo + strategy: + fail-fast: false + # We use a matrix in two parts: firstly all of the VMs are tested with the + # default config. "vm" corresponds to a label associated with the worker. + matrix: + os: [bbone, dfly30, dfly48, dfly58, fbsd6, fbsd7, fbsd12, sol10, sol11] + configs: + - default + # Then we include any extra configs we want to test for specific VMs. + include: + - { os: dfly30, configs: without-openssl} + - { os: dfly48, configs: pam } + - { os: dfly58, configs: pam } + - { os: fbsd6, configs: pam } + - { os: fbsd7, configs: pam } + - { os: fbsd12, configs: pam } + - { os: sol10, configs: pam } + - { os: sol11, configs: pam } + - { 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: save config files + if: failure() + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.configs }}-config-files + path: | + config.h + config.log + - name: make + run: vmrun make + - name: install moduli + run: vmrun "sudo mkdir -p /usr/local/etc/; sudo cp moduli /usr/local/etc/" + - name: make tests + run: vmrun ./.github/run_test.sh ${{ matrix.configs }} + - name: save regress logs + if: failure() + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.configs }}-regress-logs + path: | + regress/*.log + regress/valgrind-out/ + - name: shutdown VM + if: always() + run: vmshutdown |
