summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2021-04-23 19:10:38 +0000
committerEd Maste <emaste@FreeBSD.org>2021-04-23 19:10:38 +0000
commit206be79acbdeb88ea254ac622a60a4ee8015c5f6 (patch)
treea2b2db1cfcb757172a91d03ca0c8805185a76e1b /.github/workflows
parent3bbd8dc96b4466d8e4f850fc0adf7d02e1df2dc7 (diff)
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/c-cpp.yml56
-rw-r--r--.github/workflows/selfhosted.yml68
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