ci.yml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. name: CI
  2. on: [ push ]
  3. jobs:
  4. build-linux:
  5. runs-on: ubuntu-latest
  6. timeout-minutes: 15
  7. steps:
  8. - uses: actions/checkout@v4
  9. - name: Install dependencies
  10. run: |
  11. sudo apt-get install -y autoconf gettext autopoint libtool check indent
  12. sudo apt-get install -y e2fslibs-dev libaspell-dev libglib2.0-dev libpcre2-dev libgpm-dev libncurses5-dev libslang2-dev libssh2-1-dev libx11-dev unzip
  13. - name: Bootstrap build system
  14. run: ./autogen.sh
  15. - name: Build distribution archive
  16. run: |
  17. mkdir -p build-distrib && cd $_
  18. ../configure
  19. make dist-bzip2
  20. - name: Build full configuration
  21. run: |
  22. tar -xjf $(ls build-distrib/mc-*.tar.bz2) --one-top-level=build-full
  23. cd build-full
  24. ../configure \
  25. --prefix="$(pwd)/install" \
  26. --enable-mclib \
  27. --enable-aspell \
  28. --enable-vfs-undelfs \
  29. --enable-werror
  30. make -j$(nproc)
  31. make check
  32. make install
  33. # make indent
  34. # exit $(git ls-files --modified | wc -l)
  35. - name: Build ncurses & pcre2 configuration
  36. run: |
  37. tar -xjf $(ls build-distrib/mc-*.tar.bz2) --one-top-level=build-ncurses
  38. cd build-ncurses
  39. ../configure \
  40. --prefix="$(pwd)/install" \
  41. --with-screen=ncurses \
  42. --with-search-engine=pcre2 \
  43. --enable-werror
  44. make -j$(nproc)
  45. make check
  46. - name: Build minimal configuration
  47. run: |
  48. tar -xjf $(ls build-distrib/mc-*.tar.bz2) --one-top-level=build-minimal
  49. cd build-minimal
  50. ../configure \
  51. --prefix="$(pwd)/install" \
  52. --disable-shared \
  53. --disable-static \
  54. --disable-maintainer-mode \
  55. --disable-largefile \
  56. --disable-nls \
  57. --disable-rpath \
  58. --disable-charset \
  59. --disable-mclib \
  60. --disable-assert \
  61. --disable-aspell \
  62. --disable-background \
  63. --disable-vfs \
  64. --disable-doxygen-doc \
  65. --without-x \
  66. --without-mmap \
  67. --without-gpm-mouse \
  68. --without-internal-edit \
  69. --without-diff-viewer \
  70. --without-subshell \
  71. --enable-tests \
  72. --enable-werror
  73. make -j$(nproc)
  74. make check
  75. build-macos:
  76. runs-on: macos-latest
  77. timeout-minutes: 15
  78. env:
  79. CFLAGS: -Wno-assign-enum
  80. steps:
  81. - uses: actions/checkout@v4
  82. - name: Install dependencies
  83. run: |
  84. brew install autoconf automake libtool pkg-config check gnu-indent
  85. brew install glib libssh2 openssl aspell s-lang
  86. - name: Bootstrap build system
  87. run: ./autogen.sh
  88. - name: Build full configuration
  89. run: |
  90. mkdir build-full && cd $_
  91. ../configure \
  92. --prefix="$(pwd)/install" \
  93. --enable-mclib \
  94. --enable-aspell=/opt/homebrew
  95. make -j$(sysctl -n hw.logicalcpu)
  96. make check
  97. make install