xref: /curl/.github/workflows/torture.yml (revision 8b368fa3)
1# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
2#
3# SPDX-License-Identifier: curl
4
5name: Linux torture
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: torture-${{ github.event.pull_request.number || github.sha }}
43  cancel-in-progress: true
44
45permissions: {}
46
47env:
48  MAKEFLAGS: -j 5
49
50jobs:
51  autotools:
52    name: ${{ matrix.build.name }}
53    runs-on: 'ubuntu-latest'
54    timeout-minutes: 90
55    strategy:
56      fail-fast: false
57      matrix:
58        build:
59          - name: torture
60            install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
61            configure: --with-openssl --enable-debug --enable-ares --enable-websockets
62            tflags: -n -t --shallow=25 !FTP
63          - name: torture-ftp
64            install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
65            configure: --with-openssl --enable-debug --enable-ares
66            tflags: -n -t --shallow=20 FTP
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 ${{ matrix.build.install }}
73          sudo python3 -m pip install impacket
74        name: 'install prereqs and impacket'
75
76      - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4
77
78      - run: autoreconf -fi
79        name: 'autoreconf'
80
81      - run: ./configure --disable-dependency-tracking --enable-warnings --enable-werror ${{ matrix.build.configure }}
82        name: 'configure'
83
84      - run: make V=1
85        name: 'make'
86
87      - run: make V=1 -C tests
88        name: 'make tests'
89
90      - run: make V=1 test-torture
91        name: 'run tests'
92        env:
93          TFLAGS: "${{ matrix.build.tflags }}"
94