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