xref: /curl/.github/workflows/torture.yml (revision 6b2824da)
1# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
2#
3# SPDX-License-Identifier: curl
4
5name: Linux torture
6
7'on':
8  push:
9    branches:
10      - master
11      - '*/ci'
12    paths-ignore:
13      - '**/*.md'
14      - '**/CMakeLists.txt'
15      - '.circleci/**'
16      - 'appveyor.*'
17      - 'CMake/**'
18      - 'packages/**'
19      - 'plan9/**'
20      - 'projects/**'
21      - 'winbuild/**'
22  pull_request:
23    branches:
24      - master
25    paths-ignore:
26      - '**/*.md'
27      - '**/CMakeLists.txt'
28      - '.circleci/**'
29      - 'appveyor.*'
30      - 'CMake/**'
31      - 'packages/**'
32      - 'plan9/**'
33      - 'projects/**'
34      - 'winbuild/**'
35
36concurrency:
37  # Hardcoded workflow filename as workflow name above is just Linux again
38  group: torture-${{ github.event.pull_request.number || github.sha }}
39  cancel-in-progress: true
40
41permissions: {}
42
43jobs:
44  cmake:
45    name: '${{ matrix.build.name }}'
46    runs-on: 'ubuntu-24.04'
47    timeout-minutes: 30
48    strategy:
49      fail-fast: false
50      matrix:
51        build:
52          - name: 'OpenSSL torture !FTP'
53            install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
54            generate: -DCURL_USE_OPENSSL=ON -DENABLE_DEBUG=ON -DENABLE_ARES=ON -DENABLE_WEBSOCKETS=ON
55            tflags: -t --shallow=25 !FTP
56          - name: 'OpenSSL torture FTP'
57            install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
58            generate: -DCURL_USE_OPENSSL=ON -DENABLE_DEBUG=ON -DENABLE_ARES=ON
59            tflags: -t --shallow=20 FTP
60
61    steps:
62      - run: |
63          sudo apt-get install cmake ninja-build pkgconf stunnel4 ${{ matrix.build.install }}
64          python3 -m pip install --break-system-packages impacket
65        name: 'install prereqs'
66
67      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
68
69      - run: |
70          cmake -G Ninja -DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON -DCURL_WERROR=ON \
71            -DCURL_BROTLI=ON -DCURL_ZSTD=ON \
72            ${{ matrix.build.generate }}
73        name: 'cmake configure'
74
75      - run: cmake --build . --verbose
76        name: 'cmake build'
77
78      - run: ./src/curl -V
79        name: 'check curl -V output'
80
81      - run: cmake --build . --verbose --target testdeps
82        name: 'build tests'
83
84      - run: cmake --build . --verbose --target test-torture
85        name: 'run tests'
86        env:
87          TFLAGS: '-j10 ${{ matrix.build.tflags }}'
88