123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- # Copyright 2021-2023 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: ${{ github.server_url == 'https://github.com' && matrix.os || format('{0}-self-hosted', matrix.os) }}
- steps:
- - uses: actions/checkout@v4
- - 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 }}
- - 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: download coreinfo
- uses: suisei-cn/actions-download-file@v1.6.0
- with:
- url: "https://download.sysinternals.com/files/Coreinfo.zip"
- target: _build/coreinfo/
- - name: get cpu info
- working-directory: _build
- continue-on-error: true
- run: |
- 7z.exe x coreinfo/Coreinfo.zip
- ./Coreinfo64.exe -accepteula -f
- ./apps/openssl.exe version -c
- - name: Check platform symbol usage
- working-directory: _build
- run: perl ../util/checkplatformsyms.pl ../util/platform_symbols/windows-symbols.txt libcrypto-3-x64.dll ./libssl-3-x64.dll
- - 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: ${{ github.server_url == 'https://github.com' && matrix.os || format('{0}-self-hosted', matrix.os) }}
- steps:
- - uses: actions/checkout@v4
- - name: checkout fuzz/corpora submodule
- run: git submodule update --init --depth 1 fuzz/corpora
- - uses: ilammy/msvc-dev-cmd@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 enable-md2 enable-rc5 enable-ssl3 enable-ssl3-method enable-weak-ssl-ciphers enable-trace enable-crypto-mdebug VC-WIN64A-masm
- perl configdata.pm --dump
- - name: build
- working-directory: _build
- run: nmake /S
- - name: download coreinfo
- uses: suisei-cn/actions-download-file@v1.6.0
- with:
- url: "https://download.sysinternals.com/files/Coreinfo.zip"
- target: _build/coreinfo/
- - name: get cpu info
- working-directory: _build
- continue-on-error: true
- run: |
- 7z.exe x coreinfo/Coreinfo.zip
- ./Coreinfo64.exe -accepteula -f
- ./apps/openssl.exe version -c
- - name: test
- working-directory: _build
- run: nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4
- minimal:
- strategy:
- matrix:
- os:
- - windows-2019
- - windows-2022
- runs-on: ${{ github.server_url == 'https://github.com' && matrix.os || format('{0}-self-hosted', matrix.os) }}
- steps:
- - uses: actions/checkout@v4
- - name: checkout fuzz/corpora submodule
- run: git submodule update --init --depth 1 fuzz/corpora
- - uses: ilammy/msvc-dev-cmd@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: download coreinfo
- uses: suisei-cn/actions-download-file@v1.6.0
- with:
- url: "https://download.sysinternals.com/files/Coreinfo.zip"
- target: _build/coreinfo/
- - name: get cpu info
- working-directory: _build
- continue-on-error: true
- run: |
- 7z.exe x coreinfo/Coreinfo.zip
- ./Coreinfo64.exe -accepteula -f
- ./apps/openssl.exe version -c
- - 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: ${{ github.server_url == 'https://github.com' && matrix.os || format('{0}-self-hosted', 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@v4
- - 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"
|