]> git.ipfire.org Git - thirdparty/openssl.git/blob - .github/workflows/os-zoo.yml
Copyright year updates
[thirdparty/openssl.git] / .github / workflows / os-zoo.yml
1 # Copyright 2021-2024 The OpenSSL Project Authors. All Rights Reserved.
2 #
3 # Licensed under the Apache License 2.0 (the "License"). You may not use
4 # this file except in compliance with the License. You can obtain a copy
5 # in the file LICENSE in the source distribution or at
6 # https://www.openssl.org/source/license.html
7
8 name: OS Zoo CI
9
10 on:
11 schedule:
12 - cron: '0 5 * * *'
13
14 permissions:
15 contents: read
16
17 jobs:
18 alpine:
19 strategy:
20 fail-fast: false
21 matrix:
22 tag: [edge, latest]
23 cc: [gcc, clang]
24 branch: [openssl-3.0, openssl-3.1, master]
25 runs-on: ubuntu-latest
26 container:
27 image: docker.io/library/alpine:${{ matrix.tag }}
28 env:
29 # https://www.openwall.com/lists/musl/2022/02/16/14
30 EXTRA_CFLAGS: ${{ matrix.cc == 'clang' && '-Wno-sign-compare' || '' }}
31 CC: ${{ matrix.cc }}
32 steps:
33 - name: install packages
34 run: apk --no-cache add build-base perl linux-headers ${{ matrix.cc }}
35 - uses: actions/checkout@v4
36 with:
37 ref: ${{ matrix.branch }}
38 - name: config
39 run: |
40 ./config --banner=Configured no-shared -Wall -Werror enable-fips --strict-warnings -DOPENSSL_USE_IPV6=0 \
41 ${EXTRA_CFLAGS}
42 - name: config dump
43 run: ./configdata.pm --dump
44 - name: make
45 run: make -s -j4
46 - name: get cpu info
47 run: |
48 cat /proc/cpuinfo
49 ./util/opensslwrap.sh version -c
50 - name: make test
51 run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
52
53 linux:
54 strategy:
55 fail-fast: false
56 matrix:
57 branch: [openssl-3.0, openssl-3.1, master]
58 zoo:
59 - image: docker.io/library/debian:10
60 install: apt-get update && apt-get install -y gcc make perl
61 - image: docker.io/library/debian:11
62 install: apt-get update && apt-get install -y gcc make perl
63 - image: docker.io/library/debian:12
64 install: apt-get update && apt-get install -y gcc make perl
65 - image: docker.io/library/ubuntu:20.04
66 install: apt-get update && apt-get install -y gcc make perl
67 - image: docker.io/library/ubuntu:22.04
68 install: apt-get update && apt-get install -y gcc make perl
69 - image: docker.io/library/fedora:38
70 install: dnf install -y gcc make perl-core
71 - image: docker.io/library/fedora:39
72 install: dnf install -y gcc make perl-core
73 - image: docker.io/library/centos:8
74 install: |
75 sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
76 sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \
77 dnf install -y gcc make perl-core
78 - image: docker.io/library/rockylinux:8
79 install: dnf install -y gcc make perl-core
80 - image: docker.io/library/rockylinux:9
81 install: dnf install -y gcc make perl-core
82 runs-on: ubuntu-latest
83 container: ${{ matrix.zoo.image }}
84 steps:
85 - uses: actions/checkout@v4
86 with:
87 ref: ${{ matrix.branch }}
88 - name: install packages
89 run: ${{ matrix.zoo.install }}
90 - name: config
91 run: ./config
92 - name: config dump
93 run: ./configdata.pm --dump
94 - name: make
95 run: make -j4
96 - name: get cpu info
97 run: |
98 cat /proc/cpuinfo
99 ./util/opensslwrap.sh version -c
100 - name: make test
101 run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
102
103 macos:
104 strategy:
105 fail-fast: false
106 matrix:
107 branch: [openssl-3.0, openssl-3.1, master]
108 os: [macos-11, macos-12, macos-13, macos-14]
109 runs-on: ${{ matrix.os }}
110 steps:
111 - uses: actions/checkout@v4
112 with:
113 ref: ${{ matrix.branch }}
114 - name: checkout fuzz/corpora submodule
115 run: git submodule update --init --depth 1 fuzz/corpora
116 - name: config
117 run: ./config --banner=Configured -Wall -Werror --strict-warnings enable-fips
118 - name: config dump
119 run: ./configdata.pm --dump
120 - name: make
121 run: make -s -j4
122 - name: get cpu info
123 run: |
124 sysctl machdep.cpu
125 ./util/opensslwrap.sh version -c
126 - name: make test
127 run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
128
129 windows:
130 strategy:
131 fail-fast: false
132 matrix:
133 branch: [openssl-3.0, openssl-3.1, master]
134 os: [windows-2019, windows-2022]
135 runs-on: ${{ matrix.os }}
136 steps:
137 - uses: actions/checkout@v4
138 with:
139 ref: ${{ matrix.branch }}
140 - name: checkout fuzz/corpora submodule
141 run: git submodule update --init --depth 1 fuzz/corpora
142 - uses: ilammy/msvc-dev-cmd@v1
143 - uses: ilammy/setup-nasm@v1
144 - name: prepare the build directory
145 run: mkdir _build
146 - name: config
147 working-directory: _build
148 run: perl ..\Configure --banner=Configured no-makedepend enable-fips
149 - name: config dump
150 working-directory: _build
151 run: ./configdata.pm --dump
152 - name: build
153 working-directory: _build
154 run: nmake /S
155 - name: download coreinfo
156 uses: suisei-cn/actions-download-file@v1.6.0
157 with:
158 url: "https://download.sysinternals.com/files/Coreinfo.zip"
159 target: _build/coreinfo/
160 - name: get cpu info
161 working-directory: _build
162 run: |
163 7z.exe x coreinfo/Coreinfo.zip
164 ./Coreinfo64.exe -accepteula -f
165 apps/openssl.exe version -c
166 - name: test
167 working-directory: _build
168 run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4
169
170 self-hosted:
171 strategy:
172 matrix:
173 os: [freebsd-13.2, ubuntu-arm64-22.04]
174 runs-on: ${{ matrix.os }}-self-hosted
175 continue-on-error: true
176 steps:
177 - uses: actions/checkout@v4
178 - name: config
179 run: ./config enable-fips enable-ec_nistp_64_gcc_128 enable-md2 enable-rc5 enable-ssl3 enable-ssl3-method enable-trace
180 - name: config dump
181 run: ./configdata.pm --dump
182 - name: make
183 run: make -j4
184 - name: get cpu info
185 run: ./util/opensslwrap.sh version -c
186 - name: make test
187 run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}