windows.yml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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: Windows GitHub CI
  8. on: [pull_request, push]
  9. permissions:
  10. contents: read
  11. jobs:
  12. shared:
  13. # Run a job for each of the specified target architectures:
  14. strategy:
  15. matrix:
  16. os:
  17. - windows-2019
  18. - windows-2022
  19. platform:
  20. - arch: win64
  21. config: enable-fips
  22. - arch: win32
  23. config: --strict-warnings no-fips
  24. runs-on: ${{ github.server_url == 'https://github.com' && matrix.os || format('{0}-self-hosted', matrix.os) }}
  25. steps:
  26. - uses: actions/checkout@v4
  27. - uses: ilammy/msvc-dev-cmd@v1
  28. with:
  29. arch: ${{ matrix.platform.arch }}
  30. - uses: ilammy/setup-nasm@v1
  31. with:
  32. platform: ${{ matrix.platform.arch }}
  33. - uses: shogo82148/actions-setup-perl@v1
  34. - name: prepare the build directory
  35. run: mkdir _build
  36. - name: config
  37. working-directory: _build
  38. run: |
  39. perl ..\Configure --banner=Configured no-makedepend ${{ matrix.platform.config }}
  40. perl configdata.pm --dump
  41. - name: build
  42. working-directory: _build
  43. run: nmake /S
  44. - name: test
  45. working-directory: _build
  46. run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
  47. - name: install
  48. # Run on 64 bit only as 32 bit is slow enough already
  49. if: $${{ matrix.platform.arch == 'win64' }}
  50. run: |
  51. mkdir _dest
  52. nmake install DESTDIR=_dest
  53. working-directory: _build
  54. plain:
  55. strategy:
  56. matrix:
  57. os:
  58. - windows-2019
  59. - windows-2022
  60. runs-on: ${{ github.server_url == 'https://github.com' && matrix.os || format('{0}-self-hosted', matrix.os) }}
  61. steps:
  62. - uses: actions/checkout@v4
  63. - uses: ilammy/msvc-dev-cmd@v1
  64. - uses: shogo82148/actions-setup-perl@v1
  65. - name: prepare the build directory
  66. run: mkdir _build
  67. - name: config
  68. working-directory: _build
  69. run: |
  70. perl ..\Configure --banner=Configured no-makedepend no-shared no-fips enable-md2 enable-rc5 enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers enable-trace enable-crypto-mdebug VC-WIN64A-masm
  71. perl configdata.pm --dump
  72. - name: build
  73. working-directory: _build
  74. run: nmake /S
  75. - name: test
  76. working-directory: _build
  77. run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4
  78. minimal:
  79. strategy:
  80. matrix:
  81. os:
  82. - windows-2019
  83. - windows-2022
  84. runs-on: ${{ github.server_url == 'https://github.com' && matrix.os || format('{0}-self-hosted', matrix.os) }}
  85. steps:
  86. - uses: actions/checkout@v4
  87. - uses: ilammy/msvc-dev-cmd@v1
  88. - uses: shogo82148/actions-setup-perl@v1
  89. - name: prepare the build directory
  90. run: mkdir _build
  91. - name: config
  92. working-directory: _build
  93. run: |
  94. perl ..\Configure --banner=Configured no-makedepend no-bulk no-deprecated no-fips no-asm -DOPENSSL_SMALL_FOOTPRINT
  95. perl configdata.pm --dump
  96. - name: build
  97. working-directory: _build
  98. run: nmake # verbose, so no /S here
  99. - name: test
  100. working-directory: _build
  101. run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4