From da08681fd0bca4e92f82106385895b19a778bfb4 Mon Sep 17 00:00:00 2001 From: K1 Date: Mon, 29 Jul 2024 16:34:48 +0800 Subject: [PATCH] Modify ci os-zoo, support more os Support more OS, including alpine, debian(10, 11, 12), ubuntu(20.04, 22.04), fedora(38, 39), centos(8), rockylinux(8, 9), macos(12, 13, 14), windows(2019, 2022). --- .github/workflows/os-zoo.yml | 138 ++++++++++++++++++++++++++++++----- 1 file changed, 118 insertions(+), 20 deletions(-) diff --git a/.github/workflows/os-zoo.yml b/.github/workflows/os-zoo.yml index 3e05b803d..2ae49e5d2 100644 --- a/.github/workflows/os-zoo.yml +++ b/.github/workflows/os-zoo.yml @@ -1,4 +1,4 @@ -# Copyright 2021 The OpenSSL Project Authors. All Rights Reserved. +# Copyright 2021-2024 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 @@ -11,56 +11,154 @@ on: schedule: - cron: '0 5 * * *' +permissions: + contents: read + jobs: - unix: + alpine: strategy: fail-fast: false matrix: - os: [ - macos-10.15, - macos-11, - ubuntu-18.04, - ubuntu-20.04, - ] - runs-on: ${{ matrix.os }} + tag: [edge, latest] + cc: [gcc, clang] + branch: [8.3-stable, 8.4-stable, master] + runs-on: ubuntu-latest + container: + 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 }} steps: - - uses: actions/checkout@v2 + - name: install packages + run: apk --no-cache add build-base perl linux-headers ${{ matrix.cc }} + - uses: actions/checkout@v4 + with: + ref: ${{ matrix.branch }} - name: config run: | - CC=${{ matrix.zoo.cc }} ./config --banner=Configured \ - -Wall -Werror --strict-warnings enable-fips + ./config --banner=Configured no-shared -Wall -Werror enable-ntls --strict-warnings \ + ${EXTRA_CFLAGS} - name: config dump run: ./configdata.pm --dump - name: make run: make -s -j4 + - name: get cpu info + run: | + cat /proc/cpuinfo + ./util/opensslwrap.sh version -c - name: make test run: make test HARNESS_JOBS=${HARNESS_JOBS:-4} + + linux: + strategy: + fail-fast: false + matrix: + branch: [8.3-stable, 8.4-stable, 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 + - name: get cpu info + run: | + cat /proc/cpuinfo + ./util/opensslwrap.sh version -c + - name: make test + run: make test HARNESS_JOBS=${HARNESS_JOBS:-4} + + macos: + strategy: + fail-fast: false + matrix: + branch: [8.3-stable, 8.4-stable, master] + os: [macos-12, macos-13, macos-14] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ matrix.branch }} + - name: config + run: ./config --banner=Configured -Wall -Werror --strict-warnings enable-ntls + - name: config dump + run: ./configdata.pm --dump + - name: make + run: make -s -j4 + - name: get cpu info + run: | + sysctl machdep.cpu + ./util/opensslwrap.sh version -c + - name: make test + run: make test HARNESS_JOBS=${HARNESS_JOBS:-4} + windows: strategy: fail-fast: false matrix: - os: [ - windows-2019, - windows-2022 - ] + branch: [8.3-stable, 8.4-stable, master] + os: [windows-2019, windows-2022] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 + with: + ref: ${{ matrix.branch }} - 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 + run: perl ..\Configure --banner=Configured no-makedepend enable-ntls - name: config dump working-directory: _build run: ./configdata.pm --dump - name: build working-directory: _build run: nmake /S + - name: download coreinfo + uses: suisei-cn/actions-download-file@v1.6.0 + 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 - name: test working-directory: _build run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4