|
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