• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# SPDX-License-Identifier: MIT
2# Copyright 2021 Google LLC
3#
4# Use of this source code is governed by an MIT-style
5# license that can be found in the LICENSE file or at
6# https://opensource.org/licenses/MIT.
7
8name: CI
9on: [push]
10
11jobs:
12  static-linking-test:
13    name: Test building static library
14    runs-on: ubuntu-latest
15    steps:
16    - uses: actions/checkout@v4
17    - run: scripts/run-tests.sh static_linking
18
19  dynamic-linking-test:
20    name: Test building dynamic library
21    runs-on: ubuntu-latest
22    steps:
23    - uses: actions/checkout@v4
24    - run: scripts/run-tests.sh dynamic_linking
25
26  cplusplus-test:
27    name: Test using library from C++ program
28    runs-on: ubuntu-latest
29    steps:
30    - uses: actions/checkout@v4
31    - run: scripts/run-tests.sh cplusplus
32
33  uninstall-test:
34    name: Test uninstalling
35    runs-on: ubuntu-latest
36    steps:
37    - uses: actions/checkout@v4
38    - run: scripts/run-tests.sh uninstall
39
40  dash-test:
41    name: Test building using the dash shell
42    runs-on: ubuntu-latest
43    steps:
44    - uses: actions/checkout@v4
45    - run: scripts/run-tests.sh dash
46
47  license-test:
48    name: Test for correct license info
49    runs-on: ubuntu-latest
50    steps:
51    - uses: actions/checkout@v4
52    - run: scripts/run-tests.sh license
53
54  gcc-test:
55    name: Test with gcc
56    runs-on: ubuntu-latest
57    steps:
58    - uses: actions/checkout@v4
59    - run: scripts/run-tests.sh gcc
60
61  clang-test:
62    name: Test with clang
63    runs-on: ubuntu-latest
64    steps:
65    - uses: actions/checkout@v4
66    - name: Install dependencies
67      run: |
68        sudo apt-get update
69        sudo apt-get install -y clang
70    - run: scripts/run-tests.sh clang
71
72  _32bit-test:
73    name: Test building 32-bit binaries
74    runs-on: ubuntu-latest
75    steps:
76    - uses: actions/checkout@v4
77    - name: Install dependencies
78      run: |
79        sudo dpkg --add-architecture i386
80        sudo apt-get update
81        sudo apt-get install -y gcc-multilib libssl-dev:i386
82    - run: scripts/run-tests.sh 32bit
83
84  sanitizers-test:
85    name: Test with sanitizers enabled
86    runs-on: ubuntu-latest
87    steps:
88    - uses: actions/checkout@v4
89    - name: Install dependencies
90      run: |
91        sudo apt-get update
92        sudo apt-get install -y clang llvm
93    - name: Work around https://github.com/actions/runner-images/issues/9491
94      run: sudo sysctl vm.mmap_rnd_bits=28
95    - run: scripts/run-tests.sh sanitizers
96
97  valgrind-test:
98    name: Test with valgrind enabled
99    runs-on: ubuntu-latest
100    steps:
101    - uses: actions/checkout@v4
102    - name: Install dependencies
103      run: |
104        sudo apt-get update
105        sudo apt-get install -y valgrind
106    - run: scripts/run-tests.sh valgrind
107
108  boringssl-test:
109    name: Test with BoringSSL
110    runs-on: ubuntu-latest
111    steps:
112    - uses: actions/checkout@v4
113    - name: Cache BoringSSL build
114      uses: actions/cache@v4
115      with:
116        key: boringssl
117        path: boringssl
118    - run: make boringssl
119    - run: scripts/run-tests.sh boringssl
120
121  char-test:
122    name: Test with unsigned/signed char
123    runs-on: ubuntu-latest
124    steps:
125    - uses: actions/checkout@v4
126    - run: scripts/run-tests.sh unsigned_char signed_char
127
128  # FIXME: need a Windows build of libcrypto for this to work
129  #windows-build-test:
130    #name: Windows build tests
131    #runs-on: ubuntu-latest
132    #steps:
133    #- uses: actions/checkout@v4
134    #- name: Install dependencies
135      #run: |
136        #sudo apt-get update
137        #sudo apt-get install -y gcc-mingw-w64-i686 gcc-mingw-w64-x86-64
138    # - run: scripts/run-tests.sh windows_build
139
140  sparse-test:
141    name: Run sparse
142    runs-on: ubuntu-latest
143    steps:
144    - uses: actions/checkout@v4
145    - name: Install dependencies
146      run: |
147        sudo apt-get update
148        sudo apt-get install -y sparse
149    - run: scripts/run-tests.sh sparse
150
151  clang-analyzer-test:
152    name: Run clang static analyzer
153    runs-on: ubuntu-latest
154    steps:
155    - uses: actions/checkout@v4
156    - name: Install dependencies
157      run: |
158        sudo apt-get update
159        sudo apt-get install -y clang-tools
160    - run: scripts/run-tests.sh clang_analyzer
161
162  shellcheck-test:
163    name: Run shellcheck
164    runs-on: ubuntu-latest
165    steps:
166    - uses: actions/checkout@v4
167    - name: Install dependencies
168      run: |
169        sudo apt-get update
170        sudo apt-get install -y shellcheck
171    - run: scripts/run-tests.sh shellcheck
172