os-zoo.yml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # Copyright 2021 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. # This has to be a separate job, it seems, because we want to use a
  15. # container for it.
  16. unix-container:
  17. strategy:
  18. fail-fast: false
  19. matrix:
  20. image: ['alpine:edge', 'alpine:latest']
  21. cc: ['gcc', 'clang']
  22. runs-on: ubuntu-latest
  23. container:
  24. image: ${{ matrix.image }}
  25. steps:
  26. - name: install packages
  27. run: |
  28. apk --no-cache add build-base perl linux-headers ${{ matrix.cc }}
  29. - uses: actions/checkout@v3
  30. - name: config
  31. run: |
  32. cc="${{ matrix.cc }}"
  33. extra_cflags=""
  34. if [[ ${cc} == "clang" ]] ; then
  35. # https://www.openwall.com/lists/musl/2022/02/16/14
  36. extra_cflags="-Wno-sign-compare"
  37. fi
  38. CC=${{ matrix.cc }} ./config --banner=Configured no-shared \
  39. -Wall -Werror enable-fips --strict-warnings -DOPENSSL_USE_IPV6=0 ${extra_cflags}
  40. - name: config dump
  41. run: ./configdata.pm --dump
  42. - name: make
  43. run: make -s -j4
  44. - name: make test
  45. run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
  46. unix:
  47. strategy:
  48. fail-fast: false
  49. matrix:
  50. os: [
  51. macos-10.15,
  52. macos-11,
  53. ubuntu-18.04,
  54. ubuntu-20.04,
  55. ]
  56. runs-on: ${{ matrix.os }}
  57. steps:
  58. - uses: actions/checkout@v3
  59. - name: config
  60. run: |
  61. CC=${{ matrix.zoo.cc }} ./config --banner=Configured \
  62. -Wall -Werror --strict-warnings enable-fips
  63. - name: config dump
  64. run: ./configdata.pm --dump
  65. - name: make
  66. run: make -s -j4
  67. - name: make test
  68. run: make test HARNESS_JOBS=${HARNESS_JOBS:-4}
  69. windows:
  70. strategy:
  71. fail-fast: false
  72. matrix:
  73. os: [
  74. windows-2019,
  75. windows-2022
  76. ]
  77. runs-on: ${{ matrix.os }}
  78. steps:
  79. - uses: actions/checkout@v3
  80. - uses: ilammy/msvc-dev-cmd@v1
  81. - uses: ilammy/setup-nasm@v1
  82. - uses: shogo82148/actions-setup-perl@v1
  83. - name: prepare the build directory
  84. run: mkdir _build
  85. - name: config
  86. working-directory: _build
  87. run: |
  88. perl ..\Configure --banner=Configured no-makedepend enable-fips
  89. - name: config dump
  90. working-directory: _build
  91. run: ./configdata.pm --dump
  92. - name: build
  93. working-directory: _build
  94. run: nmake /S
  95. - name: test
  96. working-directory: _build
  97. run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4