1 # Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
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
8 name: Windows GitHub CI
10 on: [pull_request, push]
17 # Run a job for each of the specified target architectures:
27 config: --strict-warnings no-fips
28 runs-on: ${{matrix.os}}
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
35 arch: ${{ matrix.platform.arch }}
36 - uses: ilammy/setup-nasm@v1
38 platform: ${{ matrix.platform.arch }}
39 - uses: shogo82148/actions-setup-perl@v1
40 - name: prepare the build directory
43 working-directory: _build
45 perl ..\Configure --banner=Configured no-makedepend ${{ matrix.platform.config }}
46 perl configdata.pm --dump
48 working-directory: _build
51 working-directory: _build
52 run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
54 # Run on 64 bit only as 32 bit is slow enough already
55 if: $${{ matrix.platform.arch == 'win64' }}
58 nmake install DESTDIR=_dest
59 working-directory: _build
66 runs-on: ${{matrix.os}}
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
76 working-directory: _build
78 perl ..\Configure --banner=Configured no-makedepend no-shared no-fips VC-WIN64A-masm
79 perl configdata.pm --dump
81 working-directory: _build
84 working-directory: _build
85 run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4
92 runs-on: ${{matrix.os}}
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
102 working-directory: _build
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
107 working-directory: _build
108 run: nmake # verbose, so no /S here
110 working-directory: _build
111 run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
113 # Run a job for each of the specified target architectures:
118 # really worth while running, too? cygwin should mask this
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
125 # config: -DCMAKE_C_COMPILER=gcc --strict-warnings no-fips
126 runs-on: ${{matrix.os}}
130 # Don't overwhelm github CI VMs:
133 # Checkout before cygwin can mess with PATH...
134 - uses: actions/checkout@v3
135 - uses: cygwin/cygwin-install-action@master
137 packages: perl git make gcc-core
140 - name: Full cygcheck status
141 run: cygcheck -s -v -r -h
142 # Activate this if checkout action fails:
144 # run: bash -c "pwd && git clone --branch ${{ github.ref_name }} --depth 1 https://github.com/${{ github.repository }}.git"
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"