]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - crypto/openssh/.github/workflows/c-cpp.yml
ssh: Update to OpenSSH 9.3p1
[FreeBSD/FreeBSD.git] / crypto / openssh / .github / workflows / c-cpp.yml
1 name: C/C++ CI
2
3 on:
4   push:
5     paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', '**/Makefile.in', 'configure.ac' ]
6   pull_request:
7     paths: [ '**.c', '**.h', '**.m4', '**.sh', '.github/**', '**/Makefile.in', 'configure.ac' ]
8
9 jobs:
10   ci:
11     if: github.repository != 'openssh/openssh-portable-selfhosted'
12     strategy:
13       fail-fast: false
14       matrix:
15         # First we test all OSes in the default configuration.
16         target: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12, windows-2019, windows-2022]
17         config: [default]
18         # Then we include any extra configs we want to test for specific VMs.
19         # Valgrind slows things down quite a bit, so start them first.
20         include:
21           - { target: windows-2019, config: cygwin-release }
22           - { target: windows-2022, config: cygwin-release }
23           - { target: ubuntu-20.04, config: valgrind-1 }
24           - { target: ubuntu-20.04, config: valgrind-2 }
25           - { target: ubuntu-20.04, config: valgrind-3 }
26           - { target: ubuntu-20.04, config: valgrind-4 }
27           - { target: ubuntu-20.04, config: valgrind-5 }
28           - { target: ubuntu-20.04, config: valgrind-unit }
29           - { target: ubuntu-20.04, config: c89 }
30           - { target: ubuntu-20.04, config: clang-6.0 }
31           - { target: ubuntu-20.04, config: clang-8 }
32           - { target: ubuntu-20.04, config: clang-9 }
33           - { target: ubuntu-20.04, config: clang-10 }
34           - { target: ubuntu-20.04, config: clang-11 }
35           - { target: ubuntu-20.04, config: clang-12-Werror }
36           - { target: ubuntu-20.04, config: clang-sanitize-address }
37           - { target: ubuntu-20.04, config: clang-sanitize-undefined }
38           - { target: ubuntu-20.04, config: gcc-sanitize-address }
39           - { target: ubuntu-20.04, config: gcc-sanitize-undefined }
40           - { target: ubuntu-20.04, config: gcc-7 }
41           - { target: ubuntu-20.04, config: gcc-8 }
42           - { target: ubuntu-20.04, config: gcc-10 }
43           - { target: ubuntu-20.04, config: gcc-11-Werror }
44           - { target: ubuntu-20.04, config: pam }
45           - { target: ubuntu-20.04, config: kitchensink }
46           - { target: ubuntu-20.04, config: hardenedmalloc }
47           - { target: ubuntu-20.04, config: tcmalloc }
48           - { target: ubuntu-20.04, config: musl }
49           - { target: ubuntu-latest, config: libressl-master }
50           - { target: ubuntu-latest, config: libressl-2.2.9 }
51           - { target: ubuntu-latest, config: libressl-2.8.3 }
52           - { target: ubuntu-latest, config: libressl-3.0.2 }
53           - { target: ubuntu-latest, config: libressl-3.2.6 }
54           - { target: ubuntu-latest, config: libressl-3.3.6 }
55           - { target: ubuntu-latest, config: libressl-3.4.3 }
56           - { target: ubuntu-latest, config: libressl-3.5.3 }
57           - { target: ubuntu-latest, config: libressl-3.6.1 }
58           - { target: ubuntu-latest, config: libressl-3.7.0 }
59           - { target: ubuntu-latest, config: openssl-master }
60           - { target: ubuntu-latest, config: openssl-noec }
61           - { target: ubuntu-latest, config: openssl-1.0.1 }
62           - { target: ubuntu-latest, config: openssl-1.0.1u }
63           - { target: ubuntu-latest, config: openssl-1.0.2u }
64           - { target: ubuntu-latest, config: openssl-1.1.0h }
65           - { target: ubuntu-latest, config: openssl-1.1.1 }
66           - { target: ubuntu-latest, config: openssl-1.1.1k }
67           - { target: ubuntu-latest, config: openssl-1.1.1n }
68           - { target: ubuntu-latest, config: openssl-1.1.1q }
69           - { target: ubuntu-latest, config: openssl-1.1.1s }
70           - { target: ubuntu-latest, config: openssl-3.0.0 }
71           - { target: ubuntu-latest, config: openssl-3.0.5 }
72           - { target: ubuntu-latest, config: openssl-3.0.7 }
73           - { target: ubuntu-latest, config: openssl-1.1.1_stable }
74           - { target: ubuntu-latest, config: openssl-3.0 }  # stable branch
75           - { target: ubuntu-22.04, config: pam }
76           - { target: ubuntu-22.04, config: krb5 }
77           - { target: ubuntu-22.04, config: heimdal }
78           - { target: ubuntu-22.04, config: libedit }
79           - { target: ubuntu-22.04, config: sk }
80           - { target: ubuntu-22.04, config: selinux }
81           - { target: ubuntu-22.04, config: kitchensink }
82           - { target: ubuntu-22.04, config: without-openssl }
83           - { target: macos-11, config: pam }
84           - { target: macos-12, config: pam }
85     runs-on: ${{ matrix.target }}
86     steps:
87     - name: set cygwin git params
88       if: ${{ startsWith(matrix.target, 'windows') }}
89       run: git config --global core.autocrlf input
90     - name: install cygwin
91       if: ${{ startsWith(matrix.target, 'windows') }}
92       uses: cygwin/cygwin-install-action@master
93     - uses: actions/checkout@main
94     - name: setup CI system
95       run: sh ./.github/setup_ci.sh ${{ matrix.config }}
96     - name: autoreconf
97       run: sh -c autoreconf
98     - name: configure
99       run: sh ./.github/configure.sh ${{ matrix.config }}
100     - name: save config
101       uses: actions/upload-artifact@main
102       with:
103         name: ${{ matrix.target }}-${{ matrix.config }}-config
104         path: config.h
105     - name: make clean
106       run: make clean
107     - name: make
108       run: make -j2
109     - name: make tests
110       run: sh ./.github/run_test.sh ${{ matrix.config }}
111       env:
112         TEST_SSH_UNSAFE_PERMISSIONS: 1
113         TEST_SSH_HOSTBASED_AUTH: yes
114     - name: save logs
115       if: failure()
116       uses: actions/upload-artifact@main
117       with:
118         name: ${{ matrix.target }}-${{ matrix.config }}-logs
119         path: |
120           config.h
121           config.log
122           regress/*.log
123           regress/valgrind-out/
124           regress/asan.log.*
125           regress/msan.log.*
126           regress/log/*