2023-09-07 16:59:15 +08:00
|
|
|
# Copyright 2021-2023 The OpenSSL Project Authors. All Rights Reserved.
|
2021-09-24 08:28:13 +08:00
|
|
|
#
|
|
|
|
# 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
|
|
|
|
|
2023-08-25 19:39:07 +08:00
|
|
|
on:
|
|
|
|
schedule:
|
|
|
|
- cron: '0 5 * * *'
|
2021-09-24 08:28:13 +08:00
|
|
|
|
2022-07-09 22:03:23 +08:00
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
|
2021-09-24 08:28:13 +08:00
|
|
|
jobs:
|
2023-09-18 16:53:00 +08:00
|
|
|
alpine:
|
2022-11-02 09:49:37 +08:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
2023-09-18 16:53:00 +08:00
|
|
|
tag: [edge, latest]
|
|
|
|
cc: [gcc, clang]
|
|
|
|
branch: [openssl-3.0, openssl-3.1, master]
|
2022-11-02 09:49:37 +08:00
|
|
|
runs-on: ubuntu-latest
|
|
|
|
container:
|
2023-09-18 16:53:00 +08:00
|
|
|
image: docker.io/library/alpine:${{ matrix.tag }}
|
|
|
|
env:
|
|
|
|
# https://www.openwall.com/lists/musl/2022/02/16/14
|
|
|
|
EXTRA_CFLAGS: ${{ matrix.cc == 'clang' && '-Wno-sign-compare' || '' }}
|
|
|
|
CC: ${{ matrix.cc }}
|
2022-11-02 09:49:37 +08:00
|
|
|
steps:
|
|
|
|
- name: install packages
|
2023-09-18 16:53:00 +08:00
|
|
|
run: apk --no-cache add build-base perl linux-headers ${{ matrix.cc }}
|
2023-09-05 15:56:28 +08:00
|
|
|
- uses: actions/checkout@v4
|
2023-09-18 16:53:00 +08:00
|
|
|
with:
|
|
|
|
ref: ${{ matrix.branch }}
|
2022-11-02 09:49:37 +08:00
|
|
|
- name: config
|
|
|
|
run: |
|
2023-09-18 16:53:00 +08:00
|
|
|
./config --banner=Configured no-shared -Wall -Werror enable-fips --strict-warnings -DOPENSSL_USE_IPV6=0 \
|
|
|
|
${EXTRA_CFLAGS}
|
2022-11-02 09:49:37 +08:00
|
|
|
- name: config dump
|
|
|
|
run: ./configdata.pm --dump
|
|
|
|
- name: make
|
|
|
|
run: make -s -j4
|
2023-09-28 16:50:55 +08:00
|
|
|
- name: get cpu info
|
|
|
|
run: |
|
|
|
|
cat /proc/cpuinfo
|
|
|
|
./util/opensslwrap.sh version -c
|
2022-11-02 09:49:37 +08:00
|
|
|
- name: make test
|
|
|
|
run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
|
2023-09-18 16:53:00 +08:00
|
|
|
|
|
|
|
linux:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
branch: [openssl-3.0, openssl-3.1, master]
|
|
|
|
zoo:
|
|
|
|
- image: docker.io/library/debian:10
|
|
|
|
install: apt-get update && apt-get install -y gcc make perl
|
|
|
|
- image: docker.io/library/debian:11
|
|
|
|
install: apt-get update && apt-get install -y gcc make perl
|
|
|
|
- image: docker.io/library/debian:12
|
|
|
|
install: apt-get update && apt-get install -y gcc make perl
|
|
|
|
- image: docker.io/library/ubuntu:20.04
|
|
|
|
install: apt-get update && apt-get install -y gcc make perl
|
|
|
|
- image: docker.io/library/ubuntu:22.04
|
|
|
|
install: apt-get update && apt-get install -y gcc make perl
|
|
|
|
- image: docker.io/library/fedora:38
|
|
|
|
install: dnf install -y gcc make perl-core
|
|
|
|
- image: docker.io/library/fedora:39
|
|
|
|
install: dnf install -y gcc make perl-core
|
|
|
|
- image: docker.io/library/centos:8
|
|
|
|
install: |
|
|
|
|
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
|
|
|
|
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \
|
|
|
|
dnf install -y gcc make perl-core
|
|
|
|
- image: docker.io/library/rockylinux:8
|
|
|
|
install: dnf install -y gcc make perl-core
|
|
|
|
- image: docker.io/library/rockylinux:9
|
|
|
|
install: dnf install -y gcc make perl-core
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
container: ${{ matrix.zoo.image }}
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
with:
|
|
|
|
ref: ${{ matrix.branch }}
|
|
|
|
- name: install packages
|
|
|
|
run: ${{ matrix.zoo.install }}
|
|
|
|
- name: config
|
|
|
|
run: ./config
|
|
|
|
- name: config dump
|
|
|
|
run: ./configdata.pm --dump
|
|
|
|
- name: make
|
|
|
|
run: make -j4
|
2023-09-28 16:50:55 +08:00
|
|
|
- name: get cpu info
|
|
|
|
run: |
|
|
|
|
cat /proc/cpuinfo
|
|
|
|
./util/opensslwrap.sh version -c
|
2023-09-18 16:53:00 +08:00
|
|
|
- name: make test
|
|
|
|
run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
|
|
|
|
|
|
|
|
macos:
|
2021-09-24 08:28:13 +08:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
2023-09-18 16:53:00 +08:00
|
|
|
branch: [openssl-3.0, openssl-3.1, master]
|
|
|
|
os: [macos-11, macos-12, macos-13]
|
2021-09-24 08:28:13 +08:00
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
2023-09-05 15:56:28 +08:00
|
|
|
- uses: actions/checkout@v4
|
2023-09-18 16:53:00 +08:00
|
|
|
with:
|
|
|
|
ref: ${{ matrix.branch }}
|
2023-04-05 19:39:23 +08:00
|
|
|
- name: checkout fuzz/corpora submodule
|
|
|
|
run: git submodule update --init --depth 1 fuzz/corpora
|
2021-09-24 08:28:13 +08:00
|
|
|
- name: config
|
2023-09-18 16:53:00 +08:00
|
|
|
run: ./config --banner=Configured -Wall -Werror --strict-warnings enable-fips
|
2021-09-24 08:28:13 +08:00
|
|
|
- name: config dump
|
|
|
|
run: ./configdata.pm --dump
|
|
|
|
- name: make
|
|
|
|
run: make -s -j4
|
2023-09-28 16:50:55 +08:00
|
|
|
- name: get cpu info
|
|
|
|
run: |
|
|
|
|
sysctl machdep.cpu
|
|
|
|
./util/opensslwrap.sh version -c
|
2021-09-24 08:28:13 +08:00
|
|
|
- name: make test
|
|
|
|
run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
|
2023-09-18 16:53:00 +08:00
|
|
|
|
2021-09-24 08:28:13 +08:00
|
|
|
windows:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
2023-09-18 16:53:00 +08:00
|
|
|
branch: [openssl-3.0, openssl-3.1, master]
|
|
|
|
os: [windows-2019, windows-2022]
|
2021-09-24 08:28:13 +08:00
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
2023-09-05 15:56:28 +08:00
|
|
|
- uses: actions/checkout@v4
|
2023-09-18 16:53:00 +08:00
|
|
|
with:
|
|
|
|
ref: ${{ matrix.branch }}
|
2023-04-05 19:39:23 +08:00
|
|
|
- name: checkout fuzz/corpora submodule
|
|
|
|
run: git submodule update --init --depth 1 fuzz/corpora
|
2021-09-24 08:28:13 +08:00
|
|
|
- uses: ilammy/msvc-dev-cmd@v1
|
|
|
|
- uses: ilammy/setup-nasm@v1
|
|
|
|
- name: prepare the build directory
|
|
|
|
run: mkdir _build
|
|
|
|
- name: config
|
|
|
|
working-directory: _build
|
2023-09-18 16:53:00 +08:00
|
|
|
run: perl ..\Configure --banner=Configured no-makedepend enable-fips
|
2021-09-24 08:28:13 +08:00
|
|
|
- name: config dump
|
|
|
|
working-directory: _build
|
|
|
|
run: ./configdata.pm --dump
|
|
|
|
- name: build
|
|
|
|
working-directory: _build
|
|
|
|
run: nmake /S
|
2023-09-28 16:50:55 +08:00
|
|
|
- name: download coreinfo
|
2024-01-30 01:50:56 +08:00
|
|
|
uses: suisei-cn/actions-download-file@v1.6.0
|
2023-09-28 16:50:55 +08:00
|
|
|
with:
|
|
|
|
url: "https://download.sysinternals.com/files/Coreinfo.zip"
|
|
|
|
target: _build/coreinfo/
|
|
|
|
- name: get cpu info
|
|
|
|
working-directory: _build
|
|
|
|
run: |
|
|
|
|
7z.exe x coreinfo/Coreinfo.zip
|
|
|
|
./Coreinfo64.exe -accepteula -f
|
|
|
|
apps/openssl.exe version -c
|
2021-09-24 08:28:13 +08:00
|
|
|
- name: test
|
|
|
|
working-directory: _build
|
|
|
|
run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4
|
2023-11-23 21:22:35 +08:00
|
|
|
|
|
|
|
self-hosted:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os: [freebsd-13.2, ubuntu-arm64-22.04]
|
|
|
|
runs-on: ${{ matrix.os }}-self-hosted
|
|
|
|
continue-on-error: true
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: config
|
|
|
|
run: ./config enable-fips enable-ec_nistp_64_gcc_128 enable-md2 enable-rc5 enable-ssl3 enable-ssl3-method enable-trace
|
|
|
|
- name: config dump
|
|
|
|
run: ./configdata.pm --dump
|
|
|
|
- name: make
|
|
|
|
run: make -j4
|
|
|
|
- name: get cpu info
|
|
|
|
run: ./util/opensslwrap.sh version -c
|
|
|
|
- name: make test
|
|
|
|
run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
|