123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- # 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
- name: Windows GitHub CI
- on: [pull_request, push]
- permissions:
- contents: read
- jobs:
- shared:
- # Run a job for each of the specified target architectures:
- strategy:
- matrix:
- os:
- - windows-2019
- - windows-2022
- platform:
- - arch: win64
- config: enable-fips
- - arch: win32
- config: --strict-warnings no-fips
- runs-on: ${{matrix.os}}
- steps:
- - uses: actions/checkout@v3
- - name: checkout fuzz/corpora submodule
- run: git submodule update --init --depth 1 fuzz/corpora
- - uses: ilammy/msvc-dev-cmd@v1
- with:
- arch: ${{ matrix.platform.arch }}
- - uses: ilammy/setup-nasm@v1
- with:
- platform: ${{ matrix.platform.arch }}
- - uses: shogo82148/actions-setup-perl@v1
- - name: prepare the build directory
- run: mkdir _build
- - name: config
- working-directory: _build
- run: |
- perl ..\Configure --banner=Configured no-makedepend ${{ matrix.platform.config }}
- perl configdata.pm --dump
- - name: build
- working-directory: _build
- run: nmake /S
- - name: test
- working-directory: _build
- run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
- - name: install
- # Run on 64 bit only as 32 bit is slow enough already
- if: $${{ matrix.platform.arch == 'win64' }}
- run: |
- mkdir _dest
- nmake install DESTDIR=_dest
- working-directory: _build
- plain:
- strategy:
- matrix:
- os:
- - windows-2019
- - windows-2022
- runs-on: ${{matrix.os}}
- steps:
- - uses: actions/checkout@v3
- - name: checkout fuzz/corpora submodule
- run: git submodule update --init --depth 1 fuzz/corpora
- - uses: ilammy/msvc-dev-cmd@v1
- - uses: shogo82148/actions-setup-perl@v1
- - 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
- run: nmake /S
- - name: test
- working-directory: _build
- run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4
- minimal:
- strategy:
- matrix:
- os:
- - windows-2019
- - windows-2022
- runs-on: ${{matrix.os}}
- steps:
- - uses: actions/checkout@v3
- - name: checkout fuzz/corpora submodule
- run: git submodule update --init --depth 1 fuzz/corpora
- - uses: ilammy/msvc-dev-cmd@v1
- - uses: shogo82148/actions-setup-perl@v1
- - name: prepare the build directory
- run: mkdir _build
- - name: config
- working-directory: _build
- run: |
- perl ..\Configure --banner=Configured no-makedepend no-bulk no-deprecated no-fips no-asm no-threads -DOPENSSL_SMALL_FOOTPRINT
- perl configdata.pm --dump
- - name: build
- working-directory: _build
- run: nmake # verbose, so no /S here
- - name: test
- working-directory: _build
- run: nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
- 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
- config: -DCMAKE_C_COMPILER=gcc --strict-warnings no-fips
- # are we really learning sth new from win32? So let's save some CO2 for now disabling this
- # - arch: win32
- # config: -DCMAKE_C_COMPILER=gcc --strict-warnings no-fips
- 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"
|