]> git.ipfire.org Git - thirdparty/openssl.git/blame - .github/workflows/windows.yml
Enable QUIC by default
[thirdparty/openssl.git] / .github / workflows / windows.yml
CommitLineData
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
8name: Windows GitHub CI
9
10on: [pull_request, push]
11
c6e7f427
VS
12permissions:
13 contents: read
14
6ec37db5 15jobs:
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"