1# Copyright 2021-2024 The OpenSSL Project Authors. All Rights Reserved.
2#
3# Licensed under the Apache License 2.0 (the "License").  You may not use
4# this file except in compliance with the License.  You can obtain a copy
5# in the file LICENSE in the source distribution or at
6# https://www.openssl.org/source/license.html
7
8name: Run-checker merge
9# Jobs run per merge to master
10
11on: [push]
12permissions:
13  contents: read
14
15jobs:
16  run-checker:
17    strategy:
18      fail-fast: false
19      matrix:
20        opt: [
21          enable-asan enable-ubsan no-shared no-asm -DOPENSSL_SMALL_FOOTPRINT,
22          no-ct,
23          no-dso,
24          no-dynamic-engine,
25          no-ec2m,
26          no-engine no-shared,
27          no-err,
28          no-filenames,
29          enable-ubsan no-asm -DOPENSSL_SMALL_FOOTPRINT -fno-sanitize=alignment,
30          no-module,
31          no-ocsp,
32          no-pinshared,
33          no-srp,
34          no-srtp,
35          no-ts,
36          no-integrity-only-ciphers,
37          enable-weak-ssl-ciphers,
38          enable-zlib,
39          enable-pie,
40        ]
41    runs-on: ubuntu-latest
42    steps:
43    - name: Adjust ASLR for sanitizer
44      run: |
45        sudo cat /proc/sys/vm/mmap_rnd_bits
46        sudo sysctl -w vm.mmap_rnd_bits=28
47    - uses: actions/checkout@v4
48    - name: checkout fuzz/corpora submodule
49      run: git submodule update --init --depth 1 fuzz/corpora
50    - name: config
51      run: CC=clang ./config --banner=Configured --strict-warnings ${{ matrix.opt }}
52    - name: config dump
53      run: ./configdata.pm --dump
54    - name: make
55      run: make -s -j4
56    - name: get cpu info
57      run: |
58        cat /proc/cpuinfo
59        if [ -x apps/openssl ] ; then ./util/opensslwrap.sh version -c ; fi
60    - name: make test
61      run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
62