]> git.ipfire.org Git - thirdparty/openssl.git/blob - .github/workflows/windows.yml
Enable QUIC by default
[thirdparty/openssl.git] / .github / workflows / windows.yml
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
8 name: Windows GitHub CI
9
10 on: [pull_request, push]
11
12 permissions:
13 contents: read
14
15 jobs:
16 shared:
17 # Run a job for each of the specified target architectures:
18 strategy:
19 matrix:
20 os:
21 - windows-2019
22 - windows-2022
23 platform:
24 - arch: win64
25 config: enable-fips
26 - arch: win32
27 config: --strict-warnings no-fips
28 runs-on: ${{matrix.os}}
29 steps:
30 - uses: actions/checkout@v3
31 - name: checkout fuzz/corpora submodule
32 run: git submodule update --init --depth 1 fuzz/corpora
33 - uses: ilammy/msvc-dev-cmd@v1
34 with:
35 arch: ${{ matrix.platform.arch }}
36 - uses: ilammy/setup-nasm@v1
37 with:
38 platform: ${{ matrix.platform.arch }}
39 - uses: shogo82148/actions-setup-perl@v1
40 - name: prepare the build directory
41 run: mkdir _build
42 - name: config
43 working-directory: _build
44 run: |
45 perl ..\Configure --banner=Configured no-makedepend ${{ matrix.platform.config }}
46 perl configdata.pm --dump
47 - name: build
48 working-directory: _build
49 run: nmake /S
50 - name: test
51 working-directory: _build
52 run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
53 - name: install
54 # Run on 64 bit only as 32 bit is slow enough already
55 if: $${{ matrix.platform.arch == 'win64' }}
56 run: |
57 mkdir _dest
58 nmake install DESTDIR=_dest
59 working-directory: _build
60 plain:
61 strategy:
62 matrix:
63 os:
64 - windows-2019
65 - windows-2022
66 runs-on: ${{matrix.os}}
67 steps:
68 - uses: actions/checkout@v3
69 - name: checkout fuzz/corpora submodule
70 run: git submodule update --init --depth 1 fuzz/corpora
71 - uses: ilammy/msvc-dev-cmd@v1
72 - uses: shogo82148/actions-setup-perl@v1
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
82 run: nmake /S
83 - name: test
84 working-directory: _build
85 run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4
86 minimal:
87 strategy:
88 matrix:
89 os:
90 - windows-2019
91 - windows-2022
92 runs-on: ${{matrix.os}}
93 steps:
94 - uses: actions/checkout@v3
95 - name: checkout fuzz/corpora submodule
96 run: git submodule update --init --depth 1 fuzz/corpora
97 - uses: ilammy/msvc-dev-cmd@v1
98 - uses: shogo82148/actions-setup-perl@v1
99 - name: prepare the build directory
100 run: mkdir _build
101 - name: config
102 working-directory: _build
103 run: |
104 perl ..\Configure --banner=Configured no-makedepend no-bulk no-deprecated no-fips no-asm no-threads -DOPENSSL_SMALL_FOOTPRINT
105 perl configdata.pm --dump
106 - name: build
107 working-directory: _build
108 run: nmake # verbose, so no /S here
109 - name: test
110 working-directory: _build
111 run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
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
122 config: -DCMAKE_C_COMPILER=gcc --strict-warnings no-fips
123 # are we really learning sth new from win32? So let's save some CO2 for now disabling this
124 # - arch: win32
125 # config: -DCMAKE_C_COMPILER=gcc --strict-warnings no-fips
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"