1name: C/C++ CI self-hosted 2 3on: 4 push: 5 branches: [ master, ci, V_9_0 ] 6 paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', 'Makefile.in', 'configure.ac' ] 7 8jobs: 9 selfhosted: 10 if: github.repository == 'openssh/openssh-portable-selfhosted' 11 runs-on: ${{ matrix.os }} 12 env: 13 TARGET_HOST: ${{ matrix.os }} 14 strategy: 15 fail-fast: false 16 # We use a matrix in two parts: firstly all of the VMs are tested with the 17 # default config. "os" corresponds to a label associated with the worker. 18 matrix: 19 os: 20 - aix51 21 - ARM 22 - ARM64 23 - alpine 24 - debian-i386 25 - debian-riscv64 26 - dfly30 27 - dfly48 28 - dfly58 29 - dfly60 30 - fbsd10 31 - fbsd12 32 - fbsd13 33 # - hurd 34 - minix3 35 # - nbsd2 36 - nbsd3 37 - nbsd4 38 - nbsd8 39 - nbsd9 40 - obsd51 41 - obsd67 42 - obsd69 43 - obsd70 44 - obsdsnap 45 - openindiana 46 - openwrt-mips 47 - openwrt-mipsel 48 # - rocky84 49 - sol10 50 - sol11 51 - win10 52 configs: 53 - default 54 # Then we include any extra configs we want to test for specific VMs. 55 include: 56 - { os: ARM64, configs: pam } 57 - { os: debian-i386, configs: pam } 58 - { os: dfly30, configs: without-openssl} 59 - { os: dfly48, configs: pam } 60 - { os: dfly58, configs: pam } 61 - { os: dfly60, configs: pam } 62 - { os: fbsd10, configs: pam } 63 - { os: fbsd12, configs: pam } 64 - { os: fbsd13, configs: pam } 65 - { os: nbsd8, configs: pam } 66 - { os: nbsd9, configs: pam } 67 - { os: openindiana, configs: pam } 68 # - { os: rocky84, configs: pam } 69 - { os: sol10, configs: pam } 70 - { os: sol11, configs: pam-krb5 } 71 - { os: sol11, configs: sol64 } 72 # - { os: sol11, configs: sol64-pam } 73 - { os: win10, configs: cygwin-release } 74 steps: 75 - name: shutdown VM if running 76 run: vmshutdown 77 - uses: actions/checkout@v2 78 - name: autoreconf 79 run: autoreconf 80 - name: startup VM 81 run: vmstartup 82 - name: configure 83 run: vmrun ./.github/configure.sh ${{ matrix.configs }} 84 - name: save config 85 uses: actions/upload-artifact@v2 86 with: 87 name: ${{ matrix.os }}-${{ matrix.configs }}-config 88 path: config.h 89 - name: make clean 90 run: vmrun make clean 91 - name: make 92 run: vmrun make 93 - name: make tests 94 run: vmrun ./.github/run_test.sh ${{ matrix.configs }} 95 timeout-minutes: 600 96 - name: save logs 97 if: failure() 98 uses: actions/upload-artifact@v2 99 with: 100 name: ${{ matrix.os }}-${{ matrix.configs }}-logs 101 path: | 102 config.h 103 config.log 104 regress/*.log 105 regress/valgrind-out/ 106 - name: shutdown VM 107 if: always() 108 run: vmshutdown 109