1name: Upstream self-hosted 2 3on: 4 push: 5 branches: [ master, ci ] 6 paths: [ '**.c', '**.h', '.github/**' ] 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 matrix: 17 os: [ obsdsnap, obsdsnap-i386 ] 18 configs: [ default, without-openssl, ubsan ] 19 steps: 20 - uses: actions/checkout@v2 21 - name: shutdown VM if running 22 run: vmshutdown 23 - name: startup VM 24 run: vmstartup 25 - name: update source 26 run: vmrun "cd /usr/src && cvs up -dPA usr.bin/ssh regress/usr.bin/ssh" 27 - name: make clean 28 run: vmrun "cd /usr/src/usr.bin/ssh && make obj && make clean && cd /usr/src/regress/usr.bin/ssh && make obj && make clean" 29 - name: make 30 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" 31 - name: make install 32 run: vmrun "cd /usr/src/usr.bin/ssh && sudo make install" 33 - name: make tests` 34 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" 35 env: 36 SUDO: sudo 37 timeout-minutes: 300 38 - name: save logs 39 if: failure() 40 uses: actions/upload-artifact@v2 41 with: 42 name: ${{ matrix.os }}-${{ matrix.configs }}-logs 43 path: | 44 /usr/obj/regress/usr.bin/ssh/*.log 45 - name: shutdown VM 46 if: always() 47 run: vmshutdown 48