xref: /freebsd/crypto/openssh/.github/workflows/upstream.yml (revision 058ac3e8063366dafa634d9107642e12b038bf09)
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