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