summaryrefslogtreecommitdiffstats
path: root/.github/workflows/os-zoo.yml
blob: 09a24995565478751c2a6aa5ed5e39c685dd15d6 (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
# Copyright 2021 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

name: OS Zoo CI

on:
  schedule:
    - cron: '0 5 * * *'

permissions:
  contents: read

jobs:
  # This has to be a separate job, it seems, because we want to use a
  # container for it.
  unix-container:
    strategy:
      fail-fast: false
      matrix:
        image: ['alpine:edge', 'alpine:latest']
        cc: ['gcc', 'clang']
    runs-on: ubuntu-latest
    container:
      image: ${{ matrix.image }}
    steps:
    - name: install packages
      run: |
        apk --no-cache add build-base perl linux-headers git ${{ matrix.cc }}

    - uses: actions/checkout@v3

    - name: config
      run: |
        cc="${{ matrix.cc }}"

        extra_cflags=""
        if [[ ${cc} == "clang" ]] ; then
          # https://www.openwall.com/lists/musl/2022/02/16/14
          extra_cflags="-Wno-sign-compare"
        fi

        CC=${{ matrix.cc }} ./config --banner=Configured no-shared \
            -Wall -Werror enable-fips --strict-warnings -DOPENSSL_USE_IPV6=0 ${extra_cflags}

    - name: config dump
      run: ./configdata.pm --dump
    - name: make
      run: make -s -j4
    - name: make test
      run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
  unix:
    strategy:
      fail-fast: false
      matrix:
        os: [
          macos-11,
          macos-12,
          macos-13,
          ubuntu-20.04,
          ubuntu-22.04,
        ]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v3
    - name: checkout fuzz/corpora submodule
      run: git submodule update --init --depth 1 fuzz/corpora
    - name: config
      run: |
        CC=${{ matrix.zoo.cc }} ./config --banner=Configured \
            -Wall -Werror --strict-warnings enable-fips
    - name: config dump
      run: ./configdata.pm --dump
    - name: make
      run: make -s -j4
    - name: make test
      run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
  windows:
    strategy:
      fail-fast: false
      matrix:
        os: [
          windows-2019,
          windows-2022
        ]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v3
    - name: checkout fuzz/corpora submodule
      run: git submodule update --init --depth 1 fuzz/corpora
    - uses: ilammy/msvc-dev-cmd@v1
    - uses: ilammy/setup-nasm@v1
    - uses: shogo82148/actions-setup-perl@v1
    - name: prepare the build directory
      run: mkdir _build
    - name: config
      working-directory: _build
      run: |
        perl ..\Configure --banner=Configured no-makedepend enable-fips
    - name: config dump
      working-directory: _build
      run: ./configdata.pm --dump
    - name: build
      working-directory: _build
      run: nmake /S
    - name: test
      working-directory: _build
      run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4