openssl/.github/workflows/os-zoo.yml

112 lines
3.0 KiB
YAML

# Copyright 2021-2023 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@v4
- 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@v4
- 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@v4
- 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