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