# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
#
# SPDX-License-Identifier: curl

name: Linux torture

on:
  push:
    branches:
      - master
      - '*/ci'
    paths-ignore:
      - '**/*.md'
      - '**/CMakeLists.txt'
      - '.azure-pipelines.yml'
      - '.circleci/**'
      - '.cirrus.yml'
      - 'appveyor.*'
      - 'CMake/**'
      - 'packages/**'
      - 'plan9/**'
      - 'projects/**'
      - 'winbuild/**'
  pull_request:
    branches:
      - master
    paths-ignore:
      - '**/*.md'
      - '**/CMakeLists.txt'
      - '.azure-pipelines.yml'
      - '.circleci/**'
      - '.cirrus.yml'
      - 'appveyor.*'
      - 'CMake/**'
      - 'packages/**'
      - 'plan9/**'
      - 'projects/**'
      - 'winbuild/**'

concurrency:
  # Hardcoded workflow filename as workflow name above is just Linux again
  group: torture-${{ github.event.pull_request.number || github.sha }}
  cancel-in-progress: true

permissions: {}

env:
  MAKEFLAGS: -j 3

jobs:
  autotools:
    name: ${{ matrix.build.name }}
    runs-on: 'ubuntu-latest'
    timeout-minutes: 90
    strategy:
      fail-fast: false
      matrix:
        build:
          - name: torture
            install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
            configure: --with-openssl --enable-debug --enable-ares --enable-websockets
            tflags: -n -t --shallow=25 !FTP
          - name: torture-ftp
            install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
            configure: --with-openssl --enable-debug --enable-ares
            tflags: -n -t --shallow=20 FTP

    steps:
      - run: |
          sudo apt-get update
          sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
          sudo python3 -m pip install impacket
        name: 'install prereqs and impacket'

      - uses: actions/checkout@v4

      - run: autoreconf -fi
        name: 'autoreconf'

      - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
        name: 'configure'

      - run: make V=1
        name: 'make'

      - run: make V=1 -C tests
        name: 'make tests'

      - run: make V=1 test-torture
        name: 'run tests'
        env:
          TFLAGS: "${{ matrix.build.tflags }}"
