os-zoo.yml 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. # Copyright 2021-2023 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: make test
  43. run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
  44. linux:
  45. strategy:
  46. fail-fast: false
  47. matrix:
  48. branch: [openssl-3.0, openssl-3.1, master]
  49. zoo:
  50. - image: docker.io/library/debian:10
  51. install: apt-get update && apt-get install -y gcc make perl
  52. - image: docker.io/library/debian:11
  53. install: apt-get update && apt-get install -y gcc make perl
  54. - image: docker.io/library/debian:12
  55. install: apt-get update && apt-get install -y gcc make perl
  56. - image: docker.io/library/ubuntu:20.04
  57. install: apt-get update && apt-get install -y gcc make perl
  58. - image: docker.io/library/ubuntu:22.04
  59. install: apt-get update && apt-get install -y gcc make perl
  60. - image: docker.io/library/fedora:38
  61. install: dnf install -y gcc make perl-core
  62. - image: docker.io/library/fedora:39
  63. install: dnf install -y gcc make perl-core
  64. - image: docker.io/library/centos:8
  65. install: |
  66. sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* && \
  67. sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* && \
  68. dnf install -y gcc make perl-core
  69. - image: docker.io/library/rockylinux:8
  70. install: dnf install -y gcc make perl-core
  71. - image: docker.io/library/rockylinux:9
  72. install: dnf install -y gcc make perl-core
  73. runs-on: ubuntu-latest
  74. container: ${{ matrix.zoo.image }}
  75. steps:
  76. - uses: actions/checkout@v4
  77. with:
  78. ref: ${{ matrix.branch }}
  79. - name: install packages
  80. run: ${{ matrix.zoo.install }}
  81. - name: config
  82. run: ./config
  83. - name: config dump
  84. run: ./configdata.pm --dump
  85. - name: make
  86. run: make -j4
  87. - name: make test
  88. run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
  89. macos:
  90. strategy:
  91. fail-fast: false
  92. matrix:
  93. branch: [openssl-3.0, openssl-3.1, master]
  94. os: [macos-11, macos-12, macos-13]
  95. runs-on: ${{ matrix.os }}
  96. steps:
  97. - uses: actions/checkout@v4
  98. with:
  99. ref: ${{ matrix.branch }}
  100. - name: checkout fuzz/corpora submodule
  101. run: git submodule update --init --depth 1 fuzz/corpora
  102. - name: config
  103. run: ./config --banner=Configured -Wall -Werror --strict-warnings enable-fips
  104. - name: config dump
  105. run: ./configdata.pm --dump
  106. - name: make
  107. run: make -s -j4
  108. - name: make test
  109. run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
  110. windows:
  111. strategy:
  112. fail-fast: false
  113. matrix:
  114. branch: [openssl-3.0, openssl-3.1, master]
  115. os: [windows-2019, windows-2022]
  116. runs-on: ${{ matrix.os }}
  117. steps:
  118. - uses: actions/checkout@v4
  119. with:
  120. ref: ${{ matrix.branch }}
  121. - name: checkout fuzz/corpora submodule
  122. run: git submodule update --init --depth 1 fuzz/corpora
  123. - uses: ilammy/msvc-dev-cmd@v1
  124. - uses: ilammy/setup-nasm@v1
  125. - uses: shogo82148/actions-setup-perl@v1
  126. - name: prepare the build directory
  127. run: mkdir _build
  128. - name: config
  129. working-directory: _build
  130. run: perl ..\Configure --banner=Configured no-makedepend enable-fips
  131. - name: config dump
  132. working-directory: _build
  133. run: ./configdata.pm --dump
  134. - name: build
  135. working-directory: _build
  136. run: nmake /S
  137. - name: test
  138. working-directory: _build
  139. run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4