ci-ubuntu.yml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. name: ci-ubuntu
  2. on:
  3. workflow_call:
  4. jobs:
  5. build-ubuntu:
  6. runs-on: ubuntu-latest
  7. timeout-minutes: 10
  8. steps:
  9. - uses: actions/checkout@v4
  10. - name: Install dependencies
  11. run: |
  12. sudo apt-get install -y autoconf autopoint check gettext indent libtool pkg-config
  13. sudo apt-get install -y e2fslibs-dev libaspell-dev libglib2.0-dev libgpm-dev libncurses5-dev libpcre2-dev libslang2-dev libssh2-1-dev libx11-dev unzip
  14. - name: Bootstrap build system
  15. run: ./autogen.sh
  16. - name: Build distribution archive
  17. run: |
  18. mkdir -p build-distrib && cd $_
  19. ../configure
  20. make dist-bzip2
  21. - name: Build full configuration
  22. run: |
  23. tar -xjf $(ls build-distrib/mc-*.tar.bz2) --one-top-level=build-full
  24. cd build-full
  25. ../configure \
  26. --prefix="$(pwd)/install" \
  27. --enable-mclib \
  28. --enable-aspell \
  29. --enable-vfs-undelfs \
  30. --enable-werror
  31. make indent
  32. # TODO: exit 1
  33. git ls-files --modified
  34. make -j$(nproc)
  35. make check
  36. make install
  37. - name: Build ncurses & pcre2 configuration
  38. run: |
  39. tar -xjf $(ls build-distrib/mc-*.tar.bz2) --one-top-level=build-ncurses
  40. cd build-ncurses
  41. ../configure \
  42. --prefix="$(pwd)/install" \
  43. --with-screen=ncurses \
  44. --with-search-engine=pcre2 \
  45. --enable-werror
  46. make -j$(nproc)
  47. make check
  48. - name: Build minimal configuration
  49. run: |
  50. tar -xjf $(ls build-distrib/mc-*.tar.bz2) --one-top-level=build-minimal
  51. cd build-minimal
  52. ../configure \
  53. --prefix="$(pwd)/install" \
  54. --disable-shared \
  55. --disable-static \
  56. --disable-maintainer-mode \
  57. --disable-largefile \
  58. --disable-nls \
  59. --disable-rpath \
  60. --disable-charset \
  61. --disable-mclib \
  62. --disable-assert \
  63. --disable-aspell \
  64. --disable-background \
  65. --disable-vfs \
  66. --disable-doxygen-doc \
  67. --without-x \
  68. --without-gpm-mouse \
  69. --without-internal-edit \
  70. --without-diff-viewer \
  71. --without-subshell \
  72. --enable-tests \
  73. --enable-werror
  74. make -j$(nproc)
  75. make check
  76. - uses: actions/upload-artifact@v4
  77. if: failure()
  78. with:
  79. name: test-suite-logs-ubuntu
  80. path: build-*/**/test-suite.log