-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yml
114 lines (100 loc) · 4.13 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# 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
# This file use samei build process of
# https://github.com/openssl/openssl/blob/master/.github/workflows/windows.yml
# with the addition the Check executable version step
name: 'Openssl Windows compiler action'
description: 'Compiles the openssl from https://github.com/openssl/openssl to use openssl.exe as built-in executable on softwares that depends of it functionalities'
inputs:
version:
description: "Choose a openssl version by github's tag"
required: false
default: 'openssl-3.0.7'
prefix:
description: 'The top of the installation directory tree'
required: true
openssldir:
description: 'Directory for OpenSSL configuration files, and also the default certificate and key store.'
required: true
build-type:
description: 'can be "shared", "plain" or "minimal"'
required: true
arch:
description: 'when build-type input is "shared", this can be "win64" or "win32"'
required: false
default: ''
runs:
using: 'composite'
steps:
- name: Install default MSVC
uses: ilammy/msvc-dev-cmd@v1
if: ${{ inputs.build-type != 'shared' }}
- name: Install MSVC for shared build-type
uses: ilammy/msvc-dev-cmd@v1
if: ${{ inputs.build-type == 'shared' }}
with:
arch: ${{ inputs.arch }}
- name: Install NASM
uses: ilammy/setup-nasm@v1
if: ${{ inputs.build-type == 'shared' }}
with:
platform: ${{ inputs.arch }}
- name: Setup Perl
uses: shogo82148/actions-setup-perl@v1
- name: Clone openssl
shell: pwsh
run: git clone https://github.com/openssl/openssl.git
- name: Checkout openssl at specific tag
shell: pwsh
working-directory: openssl
run: |
git fetch --all --tags
git checkout tags/${{ inputs.version }}
- name: Prepare the build directory
shell: pwsh
working-directory: openssl
run: mkdir _build
- name: Configure, build and test shared for win64
shell: pwsh
if: ${{ inputs.build-type == 'shared' && inputs.arch == 'win64' }}
working-directory: openssl/_build
run: |
perl ..\Configure --prefix=${{ inputs.prefix }} --openssldir=${{ inputs.openssldir }} --banner=Configured no-makedepend enable-fips enable-quic
perl configdata.pm --dump
nmake /S
nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
nmake install
- name: Configure, build and test shared for win32
shell: pwsh
working-directory: openssl/_build
if: ${{ inputs.build-type == 'shared' && inputs.arch == 'win32' }}
run: |
perl ..\Configure --prefix=${{ inputs.prefix }} --openssldir=${{ inputs.openssldir }} --banner=Configured no-makedepend --strict-warnings no-fips enable-quic
perl configdata.pm --dump
nmake /S
nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
nmake install DESTDIR=_tmp
- name: Configure, build and test plain
shell: pwsh
working-directory: openssl/_build
if: ${{ inputs.build-type == 'plain' }}
run: |
perl ..\Configure --prefix=${{ inputs.prefix }} --openssldir=${{ inputs.openssldir }} --banner=Configured no-makedepend no-shared no-fips VC-WIN64A-masm
perl configdata.pm --dump
nmake /S
nmake test VERBOSE_FAILURE=yes HARNESS_JOBS=4
nmake install
- name: Configure, build and test minimal
shell: pwsh
working-directory: openssl/_build
if: ${{ inputs.build-type == 'minimal' }}
run: |
perl ..\Configure --prefix=${{ inputs.prefix }} --openssldir=${{ inputs.openssldir }} --banner=Configured no-makedepend no-bulk no-deprecated no-fips no-asm -DOPENSSL_SMALL_FOOTPRINT
perl configdata.pm --dump
nmake
nmake test VERBOSE_FAILURE=yes TESTS=-test_fuzz* HARNESS_JOBS=4
nmake install