# Copyright 2021-2025 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the Apache License 2.0 (the "License").  You may not use
# this file except in compliance with the License.  You can obtain a copy
# in the file LICENSE in the source distribution or at
# https://www.openssl.org/source/license.html

# Jobs run per pull request submission
name: Run-checker CI
on: [pull_request, push]
permissions:
  contents: read

env:
  OSSL_RUN_CI_TESTS: 1

jobs:
  run-checker:
    strategy:
      fail-fast: false
      matrix:
        opt: [
          no-cmp,
          no-cms,
          no-dgram,
          no-dh,
          no-dtls,
          no-ec,
          no-ecx,
          no-ml-dsa,
          no-ml-kem,
          no-http,
          no-legacy,
          no-sock,
          no-ssl-trace,
          no-stdio,
          no-threads,
          no-thread-pool,
          no-default-thread-pool,
          no-tls,
          no-tls1_2,
          no-tls1_3,
          enable-trace enable-fips,
          no-ui,
          no-quic
        ]
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: checkout fuzz/corpora submodule
      run: git submodule update --init --depth 1 fuzz/corpora
    - name: config
      run: CC=clang ./config --banner=Configured --strict-warnings ${{ matrix.opt }}
    - name: config dump
      run: ./configdata.pm --dump
    - name: make
      run: make -s -j4
    - name: get cpu info
      run: |
        cat /proc/cpuinfo
        if [ -x apps/openssl ] ; then ./util/opensslwrap.sh version -c ; fi
    - name: Check platform symbol usage
      run: ./util/checkplatformsyms.pl ./util/platform_symbols/unix-symbols.txt ./libcrypto.so ./libssl.so
    - name: make test
      run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
