aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/ci.yml
blob: 309013ae5d9221b04b05ce381bdf982d6a629e89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# SPDX-License-Identifier: MIT
# Copyright 2021 Google LLC
#
# Use of this source code is governed by an MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT.

name: CI
on: [pull_request]

jobs:
  static-linking-test:
    name: Test building static library
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: scripts/run-tests.sh static_linking

  dynamic-linking-test:
    name: Test building dynamic library
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: scripts/run-tests.sh dynamic_linking

  cplusplus-test:
    name: Test using library from C++ program
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: scripts/run-tests.sh cplusplus

  uninstall-test:
    name: Test uninstalling
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: scripts/run-tests.sh uninstall

  dash-test:
    name: Test building using the dash shell
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: scripts/run-tests.sh dash

  license-test:
    name: Test for correct license info
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: scripts/run-tests.sh license

  gcc-test:
    name: Test with gcc
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: scripts/run-tests.sh gcc

  clang-test:
    name: Test with clang
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y clang
    - run: scripts/run-tests.sh clang

  _32bit-test:
    name: Test building 32-bit binaries
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install dependencies
      run: |
        sudo dpkg --add-architecture i386
        sudo apt-get update
        sudo apt-get install -y gcc-multilib libssl-dev:i386
    - run: scripts/run-tests.sh 32bit

  sanitizers-test:
    name: Test with sanitizers enabled
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y clang llvm
    - run: scripts/run-tests.sh sanitizers

  valgrind-test:
    name: Test with valgrind enabled
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y valgrind
    - run: scripts/run-tests.sh valgrind

  boringssl-test:
    name: Test with BoringSSL
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Cache BoringSSL build
      uses: actions/cache@v2
      with:
        key: boringssl
        path: boringssl
    - run: make boringssl
    - run: scripts/run-tests.sh boringssl

  char-test:
    name: Test with unsigned/signed char
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: scripts/run-tests.sh unsigned_char signed_char

  # FIXME: need a Windows build of libcrypto for this to work
  #windows-build-test:
    #name: Windows build tests
    #runs-on: ubuntu-latest
    #steps:
    #- uses: actions/checkout@v2
    #- name: Install dependencies
      #run: |
        #sudo apt-get update
        #sudo apt-get install -y gcc-mingw-w64-i686 gcc-mingw-w64-x86-64
    # - run: scripts/run-tests.sh windows_build

  sparse-test:
    name: Run sparse
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y sparse
    - run: scripts/run-tests.sh sparse

  clang-analyzer-test:
    name: Run clang static analyzer
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y clang-tools
    - run: scripts/run-tests.sh clang_analyzer

  shellcheck-test:
    name: Run shellcheck
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y shellcheck
    - run: scripts/run-tests.sh shellcheck