torture.yml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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.yml'
  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.yml'
  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 apt-get update
  64. sudo apt-get install libtool autoconf automake pkg-config stunnel4 ${{ matrix.build.install }}
  65. sudo python3 -m pip install impacket
  66. name: 'install prereqs and impacket'
  67. - uses: actions/checkout@v4
  68. - run: autoreconf -fi
  69. name: 'autoreconf'
  70. - run: ./configure --enable-warnings --enable-werror ${{ matrix.build.configure }}
  71. name: 'configure'
  72. - run: make V=1
  73. name: 'make'
  74. - run: make V=1 -C tests
  75. name: 'make tests'
  76. - run: make V=1 test-torture
  77. name: 'run tests'
  78. env:
  79. TFLAGS: "${{ matrix.build.tflags }}"