xref: /curl/.github/workflows/wolfssl.yml (revision 303bb878)
1# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
2#
3# SPDX-License-Identifier: curl
4
5name: Linux wolfSSL
6
7on:
8  push:
9    branches:
10      - master
11      - '*/ci'
12    paths-ignore:
13      - '**/*.md'
14      - '**/CMakeLists.txt'
15      - '.azure-pipelines.yml'
16      - '.circleci/**'
17      - '.cirrus.yml'
18      - 'appveyor.*'
19      - 'CMake/**'
20      - 'packages/**'
21      - 'plan9/**'
22      - 'projects/**'
23      - 'winbuild/**'
24  pull_request:
25    branches:
26      - master
27    paths-ignore:
28      - '**/*.md'
29      - '**/CMakeLists.txt'
30      - '.azure-pipelines.yml'
31      - '.circleci/**'
32      - '.cirrus.yml'
33      - 'appveyor.*'
34      - 'CMake/**'
35      - 'packages/**'
36      - 'plan9/**'
37      - 'projects/**'
38      - 'winbuild/**'
39
40concurrency:
41  # Hardcoded workflow filename as workflow name above is just Linux again
42  group: wolfssl-${{ github.event.pull_request.number || github.sha }}
43  cancel-in-progress: true
44
45permissions: {}
46
47env:
48  MAKEFLAGS: -j 3
49
50jobs:
51  autotools:
52    name: ${{ matrix.build.name }}
53    runs-on: 'ubuntu-latest'
54    timeout-minutes: 60
55    strategy:
56      fail-fast: false
57      matrix:
58        build:
59          - name: wolfssl (configured with --enable-all)
60            install:
61            configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
62            wolfssl-configure: --enable-all
63          - name: wolfssl (configured with --enable-opensslextra)
64            install: valgrind
65            configure: LDFLAGS="-Wl,-rpath,$HOME/wssl/lib" --with-wolfssl=$HOME/wssl --enable-debug
66            wolfssl-configure: --enable-opensslextra
67
68    steps:
69      - run: |
70          sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
71          sudo apt-get update
72          sudo apt-get install libtool autoconf automake pkg-config stunnel4 libpsl-dev ${{ matrix.build.install }}
73          sudo python3 -m pip install impacket
74        name: 'install prereqs and impacket'
75
76      - run: |
77          WOLFSSL_VER=5.6.3
78          curl -LOsSf --retry 6 --retry-connrefused --max-time 999 https://github.com/wolfSSL/wolfssl/archive/v$WOLFSSL_VER-stable.tar.gz
79          tar -xzf v$WOLFSSL_VER-stable.tar.gz
80          cd wolfssl-$WOLFSSL_VER-stable
81          ./autogen.sh
82          ./configure --enable-tls13 ${{ matrix.build.wolfssl-configure }} --enable-harden --prefix=$HOME/wssl
83          make install
84        name: 'install wolfssl'
85
86      - uses: actions/checkout@v4
87
88      - run: autoreconf -fi
89        name: 'autoreconf'
90
91      - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
92        name: 'configure'
93
94      - run: make V=1
95        name: 'make'
96
97      - run: make V=1 examples
98        name: 'make examples'
99
100      - run: make V=1 -C tests
101        name: 'make tests'
102
103      - run: make V=1 test-ci
104        name: 'run tests'
105        env:
106          TFLAGS: "${{ matrix.build.tflags }}"
107