os-zoo.yml 6.0 KB

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