2021-09-20 07:54:10 +08:00
|
|
|
# Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License 2.0 (the "License"). You may not use
|
|
|
|
# this file except in compliance with the License. You can obtain a copy
|
|
|
|
# in the file LICENSE in the source distribution or at
|
|
|
|
# https://www.openssl.org/source/license.html
|
|
|
|
|
2021-03-30 11:04:52 +08:00
|
|
|
name: Windows GitHub CI
|
|
|
|
|
|
|
|
on: [pull_request, push]
|
|
|
|
|
2022-07-09 22:03:23 +08:00
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
|
2021-03-30 11:04:52 +08:00
|
|
|
jobs:
|
2021-05-19 20:18:04 +08:00
|
|
|
shared:
|
2021-05-21 16:56:00 +08:00
|
|
|
# Run a job for each of the specified target architectures:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
2021-06-11 09:58:49 +08:00
|
|
|
os:
|
2021-12-08 19:54:52 +08:00
|
|
|
- windows-2019
|
2021-12-03 18:59:07 +08:00
|
|
|
- windows-2022
|
2021-06-11 10:30:22 +08:00
|
|
|
platform:
|
|
|
|
- arch: win64
|
2023-06-30 22:56:13 +08:00
|
|
|
config: enable-fips
|
2021-06-11 10:30:22 +08:00
|
|
|
- arch: win32
|
2023-06-30 22:56:13 +08:00
|
|
|
config: --strict-warnings no-fips
|
2021-06-11 09:58:49 +08:00
|
|
|
runs-on: ${{matrix.os}}
|
2021-05-19 20:18:04 +08:00
|
|
|
steps:
|
2022-11-02 15:53:36 +08:00
|
|
|
- uses: actions/checkout@v3
|
2023-04-05 19:39:23 +08:00
|
|
|
- name: checkout fuzz/corpora submodule
|
|
|
|
run: git submodule update --init --depth 1 fuzz/corpora
|
2021-05-19 20:18:04 +08:00
|
|
|
- uses: ilammy/msvc-dev-cmd@v1
|
2021-05-21 16:56:00 +08:00
|
|
|
with:
|
2021-06-11 10:30:22 +08:00
|
|
|
arch: ${{ matrix.platform.arch }}
|
2021-05-21 16:56:00 +08:00
|
|
|
- uses: ilammy/setup-nasm@v1
|
|
|
|
with:
|
2021-06-11 10:30:22 +08:00
|
|
|
platform: ${{ matrix.platform.arch }}
|
2021-12-03 18:59:07 +08:00
|
|
|
- uses: shogo82148/actions-setup-perl@v1
|
2021-05-19 20:18:04 +08:00
|
|
|
- name: prepare the build directory
|
|
|
|
run: mkdir _build
|
|
|
|
- name: config
|
|
|
|
working-directory: _build
|
|
|
|
run: |
|
2021-06-11 10:30:22 +08:00
|
|
|
perl ..\Configure --banner=Configured no-makedepend ${{ matrix.platform.config }}
|
2021-05-19 20:18:04 +08:00
|
|
|
perl configdata.pm --dump
|
|
|
|
- name: build
|
|
|
|
working-directory: _build
|
2021-06-02 23:26:02 +08:00
|
|
|
run: nmake /S
|
2021-05-19 20:18:04 +08:00
|
|
|
- name: test
|
|
|
|
working-directory: _build
|
2021-05-31 20:22:35 +08:00
|
|
|
run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
|
2021-05-24 18:16:00 +08:00
|
|
|
- name: install
|
|
|
|
# Run on 64 bit only as 32 bit is slow enough already
|
2021-06-11 10:30:22 +08:00
|
|
|
if: $${{ matrix.platform.arch == 'win64' }}
|
2021-05-24 18:16:00 +08:00
|
|
|
run: |
|
|
|
|
mkdir _dest
|
|
|
|
nmake install DESTDIR=_dest
|
|
|
|
working-directory: _build
|
2021-05-19 20:18:04 +08:00
|
|
|
plain:
|
2021-06-11 09:58:49 +08:00
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os:
|
2021-12-08 19:54:52 +08:00
|
|
|
- windows-2019
|
2021-12-03 18:59:07 +08:00
|
|
|
- windows-2022
|
2021-06-11 09:58:49 +08:00
|
|
|
runs-on: ${{matrix.os}}
|
2021-05-19 20:18:04 +08:00
|
|
|
steps:
|
2022-11-02 15:53:36 +08:00
|
|
|
- uses: actions/checkout@v3
|
2023-04-05 19:39:23 +08:00
|
|
|
- name: checkout fuzz/corpora submodule
|
|
|
|
run: git submodule update --init --depth 1 fuzz/corpora
|
2021-05-19 20:18:04 +08:00
|
|
|
- uses: ilammy/msvc-dev-cmd@v1
|
2021-12-03 18:59:07 +08:00
|
|
|
- uses: shogo82148/actions-setup-perl@v1
|
2021-05-19 20:18:04 +08:00
|
|
|
- name: prepare the build directory
|
|
|
|
run: mkdir _build
|
|
|
|
- name: config
|
|
|
|
working-directory: _build
|
|
|
|
run: |
|
|
|
|
perl ..\Configure --banner=Configured no-makedepend no-shared no-fips VC-WIN64A-masm
|
|
|
|
perl configdata.pm --dump
|
|
|
|
- name: build
|
|
|
|
working-directory: _build
|
2021-06-02 23:26:02 +08:00
|
|
|
run: nmake /S
|
2021-05-19 20:18:04 +08:00
|
|
|
- name: test
|
|
|
|
working-directory: _build
|
2021-06-09 18:27:51 +08:00
|
|
|
run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4
|
2021-03-30 11:04:52 +08:00
|
|
|
minimal:
|
2021-06-11 09:58:49 +08:00
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os:
|
2021-12-08 19:54:52 +08:00
|
|
|
- windows-2019
|
2021-12-03 18:59:07 +08:00
|
|
|
- windows-2022
|
2021-06-11 09:58:49 +08:00
|
|
|
runs-on: ${{matrix.os}}
|
2021-03-30 11:04:52 +08:00
|
|
|
steps:
|
2022-11-02 15:53:36 +08:00
|
|
|
- uses: actions/checkout@v3
|
2023-04-05 19:39:23 +08:00
|
|
|
- name: checkout fuzz/corpora submodule
|
|
|
|
run: git submodule update --init --depth 1 fuzz/corpora
|
2021-03-30 11:04:52 +08:00
|
|
|
- uses: ilammy/msvc-dev-cmd@v1
|
2021-12-03 18:59:07 +08:00
|
|
|
- uses: shogo82148/actions-setup-perl@v1
|
2021-03-30 11:04:52 +08:00
|
|
|
- name: prepare the build directory
|
|
|
|
run: mkdir _build
|
|
|
|
- name: config
|
|
|
|
working-directory: _build
|
|
|
|
run: |
|
2023-06-30 22:56:13 +08:00
|
|
|
perl ..\Configure --banner=Configured no-makedepend no-bulk no-deprecated no-fips no-asm no-threads -DOPENSSL_SMALL_FOOTPRINT
|
2021-03-30 11:04:52 +08:00
|
|
|
perl configdata.pm --dump
|
|
|
|
- name: build
|
|
|
|
working-directory: _build
|
2021-06-02 23:26:02 +08:00
|
|
|
run: nmake # verbose, so no /S here
|
2021-03-30 11:04:52 +08:00
|
|
|
- name: test
|
|
|
|
working-directory: _build
|
2021-05-31 20:22:35 +08:00
|
|
|
run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
|
2023-06-04 20:43:35 +08:00
|
|
|
cygwin:
|
|
|
|
# Run a job for each of the specified target architectures:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
os:
|
|
|
|
- windows-2019
|
|
|
|
# really worth while running, too? cygwin should mask this
|
|
|
|
# - windows-2022
|
|
|
|
platform:
|
|
|
|
- arch: win64
|
2023-06-30 22:56:13 +08:00
|
|
|
config: -DCMAKE_C_COMPILER=gcc --strict-warnings no-fips
|
2023-06-04 20:43:35 +08:00
|
|
|
# are we really learning sth new from win32? So let's save some CO2 for now disabling this
|
|
|
|
# - arch: win32
|
2023-06-30 22:56:13 +08:00
|
|
|
# config: -DCMAKE_C_COMPILER=gcc --strict-warnings no-fips
|
2023-06-04 20:43:35 +08:00
|
|
|
runs-on: ${{matrix.os}}
|
|
|
|
env:
|
|
|
|
CYGWIN_NOWINPATH: 1
|
|
|
|
SHELLOPTS: igncr
|
|
|
|
# Don't overwhelm github CI VMs:
|
|
|
|
MAKE_PARAMS: -j 4
|
|
|
|
steps:
|
|
|
|
# Checkout before cygwin can mess with PATH...
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: cygwin/cygwin-install-action@master
|
|
|
|
with:
|
|
|
|
packages: perl git make gcc-core
|
|
|
|
- name: Check repo
|
|
|
|
run: cygcheck -V
|
|
|
|
- name: Full cygcheck status
|
|
|
|
run: cygcheck -s -v -r -h
|
|
|
|
# Activate this if checkout action fails:
|
|
|
|
# - name: Clone repo
|
|
|
|
# run: bash -c "pwd && git clone --branch ${{ github.ref_name }} --depth 1 https://github.com/${{ github.repository }}.git"
|
|
|
|
- name: Full build
|
|
|
|
run: bash -c "gcc --version && ./config ${{ matrix.platform.config }} && make $MAKE_PARAMS"
|
|
|
|
# Disable testing for now. TBD: Need local cygwin installation to debug .
|
|
|
|
# - name: Run openssl tests
|
|
|
|
# run: bash -c "cd openssl && make V=1 test"
|