torture.yml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
  2. #
  3. # SPDX-License-Identifier: curl
  4. name: Linux torture
  5. on:
  6. push:
  7. branches:
  8. - master
  9. - '*/ci'
  10. paths-ignore:
  11. - '**/*.md'
  12. - '**/CMakeLists.txt'
  13. - '.azure-pipelines.yml'
  14. - '.circleci/**'
  15. - '.cirrus.yml'
  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. - '.azure-pipelines.yml'
  29. - '.circleci/**'
  30. - '.cirrus.yml'
  31. - 'appveyor.*'
  32. - 'CMake/**'
  33. - 'packages/**'
  34. - 'plan9/**'
  35. - 'projects/**'
  36. - 'winbuild/**'
  37. concurrency:
  38. # Hardcoded workflow filename as workflow name above is just Linux again
  39. group: torture-${{ github.event.pull_request.number || github.sha }}
  40. cancel-in-progress: true
  41. permissions: {}
  42. env:
  43. MAKEFLAGS: -j 3
  44. jobs:
  45. autotools:
  46. name: ${{ matrix.build.name }}
  47. runs-on: 'ubuntu-latest'
  48. timeout-minutes: 90
  49. strategy:
  50. fail-fast: false
  51. matrix:
  52. build:
  53. - name: torture
  54. install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
  55. configure: --with-openssl --enable-debug --enable-ares --enable-websockets
  56. tflags: -n -t --shallow=25 !FTP
  57. - name: torture-ftp
  58. install: libpsl-dev libbrotli-dev libzstd-dev zlib1g-dev libnghttp2-dev libssh2-1-dev libc-ares-dev
  59. configure: --with-openssl --enable-debug --enable-ares
  60. tflags: -n -t --shallow=20 FTP
  61. steps:
  62. - run: |
  63. sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
  64. sudo apt-get update
  65. sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
  66. sudo python3 -m pip install impacket
  67. name: 'install prereqs and impacket'
  68. - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4
  69. - run: autoreconf -fi
  70. name: 'autoreconf'
  71. - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
  72. name: 'configure'
  73. - run: make V=1
  74. name: 'make'
  75. - run: make V=1 -C tests
  76. name: 'make tests'
  77. - run: make V=1 test-torture
  78. name: 'run tests'
  79. env:
  80. TFLAGS: "${{ matrix.build.tflags }}"