]>
Commit | Line | Data |
---|---|---|
08d8c2d8 P |
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 | ||
6ec37db5 SL |
8 | name: Windows GitHub CI |
9 | ||
10 | on: [pull_request, push] | |
11 | ||
c6e7f427 VS |
12 | permissions: |
13 | contents: read | |
14 | ||
6ec37db5 | 15 | jobs: |
d7c18395 | 16 | shared: |
69d8cf70 TM |
17 | # Run a job for each of the specified target architectures: |
18 | strategy: | |
19 | matrix: | |
dd53c297 | 20 | os: |
c37ebbd6 | 21 | - windows-2019 |
c87a4dd7 | 22 | - windows-2022 |
25eeab01 RL |
23 | platform: |
24 | - arch: win64 | |
8a764202 | 25 | config: enable-fips |
25eeab01 | 26 | - arch: win32 |
8a764202 | 27 | config: --strict-warnings no-fips |
dd53c297 | 28 | runs-on: ${{matrix.os}} |
d7c18395 | 29 | steps: |
4ff66347 | 30 | - uses: actions/checkout@v3 |
1ac0464d TM |
31 | - name: checkout fuzz/corpora submodule |
32 | run: git submodule update --init --depth 1 fuzz/corpora | |
d7c18395 | 33 | - uses: ilammy/msvc-dev-cmd@v1 |
69d8cf70 | 34 | with: |
25eeab01 | 35 | arch: ${{ matrix.platform.arch }} |
69d8cf70 TM |
36 | - uses: ilammy/setup-nasm@v1 |
37 | with: | |
25eeab01 | 38 | platform: ${{ matrix.platform.arch }} |
c87a4dd7 | 39 | - uses: shogo82148/actions-setup-perl@v1 |
d7c18395 TM |
40 | - name: prepare the build directory |
41 | run: mkdir _build | |
42 | - name: config | |
43 | working-directory: _build | |
44 | run: | | |
25eeab01 | 45 | perl ..\Configure --banner=Configured no-makedepend ${{ matrix.platform.config }} |
d7c18395 TM |
46 | perl configdata.pm --dump |
47 | - name: build | |
48 | working-directory: _build | |
d0196ddc | 49 | run: nmake /S |
d7c18395 TM |
50 | - name: test |
51 | working-directory: _build | |
86825c99 | 52 | run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4 |
31131927 TM |
53 | - name: install |
54 | # Run on 64 bit only as 32 bit is slow enough already | |
25eeab01 | 55 | if: $${{ matrix.platform.arch == 'win64' }} |
31131927 TM |
56 | run: | |
57 | mkdir _dest | |
58 | nmake install DESTDIR=_dest | |
59 | working-directory: _build | |
d7c18395 | 60 | plain: |
dd53c297 RL |
61 | strategy: |
62 | matrix: | |
63 | os: | |
c37ebbd6 | 64 | - windows-2019 |
c87a4dd7 | 65 | - windows-2022 |
dd53c297 | 66 | runs-on: ${{matrix.os}} |
d7c18395 | 67 | steps: |
4ff66347 | 68 | - uses: actions/checkout@v3 |
1ac0464d TM |
69 | - name: checkout fuzz/corpora submodule |
70 | run: git submodule update --init --depth 1 fuzz/corpora | |
d7c18395 | 71 | - uses: ilammy/msvc-dev-cmd@v1 |
c87a4dd7 | 72 | - uses: shogo82148/actions-setup-perl@v1 |
d7c18395 TM |
73 | - name: prepare the build directory |
74 | run: mkdir _build | |
75 | - name: config | |
76 | working-directory: _build | |
77 | run: | | |
78 | perl ..\Configure --banner=Configured no-makedepend no-shared no-fips VC-WIN64A-masm | |
79 | perl configdata.pm --dump | |
80 | - name: build | |
81 | working-directory: _build | |
d0196ddc | 82 | run: nmake /S |
d7c18395 TM |
83 | - name: test |
84 | working-directory: _build | |
451c2a95 | 85 | run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4 |
6ec37db5 | 86 | minimal: |
dd53c297 RL |
87 | strategy: |
88 | matrix: | |
89 | os: | |
c37ebbd6 | 90 | - windows-2019 |
c87a4dd7 | 91 | - windows-2022 |
dd53c297 | 92 | runs-on: ${{matrix.os}} |
6ec37db5 | 93 | steps: |
4ff66347 | 94 | - uses: actions/checkout@v3 |
1ac0464d TM |
95 | - name: checkout fuzz/corpora submodule |
96 | run: git submodule update --init --depth 1 fuzz/corpora | |
6ec37db5 | 97 | - uses: ilammy/msvc-dev-cmd@v1 |
c87a4dd7 | 98 | - uses: shogo82148/actions-setup-perl@v1 |
6ec37db5 SL |
99 | - name: prepare the build directory |
100 | run: mkdir _build | |
101 | - name: config | |
102 | working-directory: _build | |
103 | run: | | |
8a764202 | 104 | perl ..\Configure --banner=Configured no-makedepend no-bulk no-deprecated no-fips no-asm no-threads -DOPENSSL_SMALL_FOOTPRINT |
6ec37db5 SL |
105 | perl configdata.pm --dump |
106 | - name: build | |
107 | working-directory: _build | |
d0196ddc | 108 | run: nmake # verbose, so no /S here |
6ec37db5 SL |
109 | - name: test |
110 | working-directory: _build | |
86825c99 | 111 | run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4 |
e3b01eb6 MB |
112 | cygwin: |
113 | # Run a job for each of the specified target architectures: | |
114 | strategy: | |
115 | matrix: | |
116 | os: | |
117 | - windows-2019 | |
118 | # really worth while running, too? cygwin should mask this | |
119 | # - windows-2022 | |
120 | platform: | |
121 | - arch: win64 | |
8a764202 | 122 | config: -DCMAKE_C_COMPILER=gcc --strict-warnings no-fips |
e3b01eb6 MB |
123 | # are we really learning sth new from win32? So let's save some CO2 for now disabling this |
124 | # - arch: win32 | |
8a764202 | 125 | # config: -DCMAKE_C_COMPILER=gcc --strict-warnings no-fips |
e3b01eb6 MB |
126 | runs-on: ${{matrix.os}} |
127 | env: | |
128 | CYGWIN_NOWINPATH: 1 | |
129 | SHELLOPTS: igncr | |
130 | # Don't overwhelm github CI VMs: | |
131 | MAKE_PARAMS: -j 4 | |
132 | steps: | |
133 | # Checkout before cygwin can mess with PATH... | |
134 | - uses: actions/checkout@v3 | |
135 | - uses: cygwin/cygwin-install-action@master | |
136 | with: | |
137 | packages: perl git make gcc-core | |
138 | - name: Check repo | |
139 | run: cygcheck -V | |
140 | - name: Full cygcheck status | |
141 | run: cygcheck -s -v -r -h | |
142 | # Activate this if checkout action fails: | |
143 | # - name: Clone repo | |
144 | # run: bash -c "pwd && git clone --branch ${{ github.ref_name }} --depth 1 https://github.com/${{ github.repository }}.git" | |
145 | - name: Full build | |
146 | run: bash -c "gcc --version && ./config ${{ matrix.platform.config }} && make $MAKE_PARAMS" | |
147 | # Disable testing for now. TBD: Need local cygwin installation to debug . | |
148 | # - name: Run openssl tests | |
149 | # run: bash -c "cd openssl && make V=1 test" |