3 # Use bash by default on all platforms.
13 - 'xapian-maintainer-tools/**'
19 - 'xapian-maintainer-tools/**'
21 # Allows you to run this workflow manually from the Actions tab
27 runs-on: 'ubuntu-latest'
29 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
31 - name: Check out repository code
32 uses: actions/checkout@v4
35 - name: Install CCache
36 uses: hendrikmuhs/ccache-action@v1
38 key: ${{ github.job }}
39 - name: Cache bootstrap tools
40 uses: actions/cache@v4
45 key: ${{ github.job }}-${{ runner.os }}-${{ hashFiles( 'bootstrap', 'patches/**' ) }}
46 - name: Install package dependencies
49 sudo apt-get install \
77 libextractor-plugins-all \
79 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
82 - name: bootstrap source tree
84 # If we restored cached bootstrap tools their timestamps will be older
85 # than checked out files, but we stored them based on a hash of the
86 # files in git that determine what gets built so we know they are in
87 # fact up to date. Just touch any stamp files that exist.
88 touch --no-create INST/*.stamp
89 export PATH=/usr/lib/ccache:$PATH
90 echo verbose=off > ~/.wgetrc
91 ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
93 run: ./configure CC='ccache gcc' CXX='ccache g++'
97 run: make -j2 check AUTOMATED_TESTING=1 VERBOSE=1
98 - name: Create distribution tarball
101 - uses: actions/upload-artifact@v4
104 xapian-core/xapian-core-*.tar.xz
105 xapian-applications/omega/xapian-omega-*.tar.xz
106 xapian-bindings/xapian-bindings-*.tar.xz
107 xapian-letor/xapian-letor-*.tar.xz
108 # Files are already compressed so don't try to compress again.
111 if-no-files-found: error
112 - name: Check generated files are in .gitignore
113 # grep '^' passes through all input while giving a non-zero exit status
114 # if that input is empty.
115 run: git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
118 runs-on: 'ubuntu-latest'
120 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
123 - name: Install CCache
124 uses: hendrikmuhs/ccache-action@v1
126 key: ${{ github.job }}
127 - name: Fetch distribution
128 uses: actions/download-artifact@v4
129 - name: Unpack distribution
134 tar --strip-components=1 -xf xapian-core-*.tar.xz
136 pushd xapian-applications/omega
137 tar --strip-components=1 -xf xapian-omega-*.tar.xz
139 # pushd xapian-bindings
140 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
143 tar --strip-components=1 -xf xapian-letor-*.tar.xz
145 - name: Install package dependencies
148 sudo apt-get install \
161 libpoppler-glib-dev \
172 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
177 # We use clang here because (at least currently) it supports a few
178 # extra sanitiser checks compared to GCC.
179 export CC='ccache clang'
180 export CXX='ccache clang++'
181 # float-divide-by-zero, nullability and unsigned-overflow aren't
182 # undefined behaviour checks, but they catch for things we don't expect
184 export CXXFLAGS='-fsanitize=address,undefined,float-divide-by-zero,local-bounds,nullability,unsigned-integer-overflow -fsanitize-address-use-after-scope -fsanitize-recover=all -g -O2 -fno-omit-frame-pointer'
186 ./configure --enable-werror
187 export XAPIAN_CONFIG=$PWD/xapian-config
189 pushd xapian-applications/omega
190 ./configure --enable-werror
192 # pushd xapian-bindings
193 ## PHP calls dlopen() with "RTLD_DEEPBIND flag which is incompatible
194 ## with sanitizer runtime".
196 ## Other bindings should work, but need to debug why they fail to
197 ## work properly currently (with Lua, Python and Tcl we fail to find the
198 ## symbol __ubsan_handle_function_type_mismatch when the module is
199 ## loaded which seems like a setup problem).
200 # ./configure --enable-werror --without-lua --without-php --without-python3 --without-tcl
203 ./configure --enable-werror
207 make -j2 -C xapian-core
208 make -j2 -C xapian-applications/omega
209 # make -j2 -C xapian-bindings MACOS_SIP_HACK_ENV='env LSAN_OPTIONS=leak_check_at_exit=0 LD_PRELOAD=libasan.so.8:libubsan.so.1'
210 make -j2 -C xapian-letor
213 export AUTOMATED_TESTING=1
215 make -j2 -C xapian-core check
216 make -j2 -C xapian-applications/omega check
217 # make -j2 -C xapian-bindings check MACOS_SIP_HACK_ENV='env LSAN_OPTIONS=leak_check_at_exit=0 LD_PRELOAD=libasan.so.8:libubsan.so.1'
218 make -j2 -C xapian-letor check
221 runs-on: 'ubuntu-20.04'
223 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
226 - name: Install CCache
227 uses: hendrikmuhs/ccache-action@v1
229 key: ${{ github.job }}
230 - name: Fetch distribution
231 uses: actions/download-artifact@v4
232 - name: Unpack distribution
237 tar --strip-components=1 -xf xapian-core-*.tar.xz
239 pushd xapian-applications/omega
240 tar --strip-components=1 -xf xapian-omega-*.tar.xz
242 pushd xapian-bindings
243 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
246 tar --strip-components=1 -xf xapian-letor-*.tar.xz
248 - name: Install package dependencies
251 sudo apt-get install \
264 libpoppler-glib-dev \
275 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer
276 # tesseract's C++ API uses std::vector so would need rebuilding with
277 # -D_GLIBCXX_DEBUG too.
282 export CC='ccache gcc'
283 export CXX='ccache g++'
284 export CPPFLAGS='-D_GLIBCXX_DEBUG'
286 ./configure --enable-werror
287 export XAPIAN_CONFIG=$PWD/xapian-config
289 pushd xapian-applications/omega
290 ./configure --enable-werror
292 pushd xapian-bindings
293 ./configure --enable-werror
296 ./configure --enable-werror
300 make -j2 -C xapian-core
301 make -j2 -C xapian-applications/omega
302 make -j2 -C xapian-bindings
303 make -j2 -C xapian-letor
306 export AUTOMATED_TESTING=1
308 make -j2 -C xapian-core check
309 make -j2 -C xapian-applications/omega check
310 make -j2 -C xapian-bindings check
311 make -j2 -C xapian-letor check
314 # _FORTIFY_SOURCE level 3 requires GCC 12, so currently we need to use
315 # Ubuntu 22.04 and the gcc-12 and g++12 packages.
316 runs-on: 'ubuntu-22.04'
318 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
321 - name: Install CCache
322 uses: hendrikmuhs/ccache-action@v1
324 key: ${{ github.job }}
325 - name: Fetch distribution
326 uses: actions/download-artifact@v4
327 - name: Unpack distribution
332 tar --strip-components=1 -xf xapian-core-*.tar.xz
334 pushd xapian-applications/omega
335 tar --strip-components=1 -xf xapian-omega-*.tar.xz
337 pushd xapian-bindings
338 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
341 tar --strip-components=1 -xf xapian-letor-*.tar.xz
343 - name: Install package dependencies
346 sudo apt-get install \
361 libpoppler-glib-dev \
371 libextractor-plugins-all \
373 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
378 export CC='ccache gcc-12'
379 export CXX='ccache g++-12'
380 # Make this build use builddir != srcdir as we aim to support that and
381 # so want to catch regressions in support. This build seems a good
382 # choice for that as it's as full a build as any.
383 mkdir -p _build/xapian-core _build/xapian-applications/omega _build/xapian-bindings _build/xapian-letor
385 # Ubuntu's GCC packages define _FORTIFY_SOURCE=2 by default, so we need
386 # to undefine it before we define it to avoid a warning (which becomes
387 # an error with -Werror).
388 export CPPFLAGS='-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3'
390 ../../xapian-core/configure --enable-werror
391 export XAPIAN_CONFIG=$PWD/xapian-config
393 pushd xapian-applications/omega
394 ../../../xapian-applications/omega/configure --enable-werror
396 pushd xapian-bindings
397 ../../xapian-bindings/configure --enable-werror
400 ../../xapian-letor/configure --enable-werror
405 make -j2 -C xapian-core
406 make -j2 -C xapian-applications/omega
407 make -j2 -C xapian-bindings
408 make -j2 -C xapian-letor
411 export AUTOMATED_TESTING=1
414 make -j2 -C xapian-core check
415 make -j2 -C xapian-applications/omega check
416 make -j2 -C xapian-bindings check
417 make -j2 -C xapian-letor check
420 runs-on: 'ubuntu-22.04'
422 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
425 - name: Install CCache
426 uses: hendrikmuhs/ccache-action@v1
428 key: ${{ github.job }}
429 - name: Fetch distribution
430 uses: actions/download-artifact@v4
431 - name: Unpack distribution
436 tar --strip-components=1 -xf xapian-core-*.tar.xz
438 pushd xapian-applications/omega
439 tar --strip-components=1 -xf xapian-omega-*.tar.xz
441 pushd xapian-bindings
442 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
445 tar --strip-components=1 -xf xapian-letor-*.tar.xz
447 - name: Install package dependencies
450 sudo apt-get install \
463 libpoppler-glib-dev \
473 libextractor-plugins-all \
475 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
480 export CC='ccache gcc'
481 export CXX='ccache g++'
483 ./configure --enable-werror --enable-assertions
484 export XAPIAN_CONFIG=$PWD/xapian-config
486 pushd xapian-applications/omega
487 ./configure --enable-werror
489 pushd xapian-bindings
490 ./configure --enable-werror
493 ./configure --enable-werror
497 make -j2 -C xapian-core
498 make -j2 -C xapian-applications/omega
499 make -j2 -C xapian-bindings
500 make -j2 -C xapian-letor
503 export AUTOMATED_TESTING=1
505 make -j2 -C xapian-core check
506 make -j2 -C xapian-applications/omega check
507 make -j2 -C xapian-bindings check
508 make -j2 -C xapian-letor check
511 runs-on: 'ubuntu-22.04'
513 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
516 - name: Install CCache
517 uses: hendrikmuhs/ccache-action@v1
519 key: ${{ github.job }}
520 - name: Fetch distribution
521 uses: actions/download-artifact@v4
522 - name: Unpack distribution
527 tar --strip-components=1 -xf xapian-core-*.tar.xz
529 pushd xapian-applications/omega
530 tar --strip-components=1 -xf xapian-omega-*.tar.xz
532 pushd xapian-bindings
533 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
536 tar --strip-components=1 -xf xapian-letor-*.tar.xz
538 - name: Install package dependencies
541 sudo apt-get install \
554 libpoppler-glib-dev \
564 libextractor-plugins-all \
566 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
571 export CC='ccache gcc'
572 export CXX='ccache g++'
574 ./configure --enable-werror --enable-log
575 export XAPIAN_CONFIG=$PWD/xapian-config
577 pushd xapian-applications/omega
578 ./configure --enable-werror
580 pushd xapian-bindings
581 ./configure --enable-werror
584 ./configure --enable-werror
588 make -j2 -C xapian-core
589 make -j2 -C xapian-applications/omega
590 make -j2 -C xapian-bindings
591 make -j2 -C xapian-letor
594 export AUTOMATED_TESTING=1
596 make -j2 -C xapian-core check
597 make -j2 -C xapian-applications/omega check
598 make -j2 -C xapian-bindings check
599 make -j2 -C xapian-letor check
602 runs-on: 'ubuntu-20.04'
604 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
607 - name: Install CCache
608 uses: hendrikmuhs/ccache-action@v1
610 key: ${{ github.job }}
611 - name: Fetch distribution
612 uses: actions/download-artifact@v4
613 - name: Unpack distribution
618 tar --strip-components=1 -xf xapian-core-*.tar.xz
620 pushd xapian-applications/omega
621 tar --strip-components=1 -xf xapian-omega-*.tar.xz
623 pushd xapian-bindings
624 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
627 tar --strip-components=1 -xf xapian-letor-*.tar.xz
629 - name: Install package dependencies
633 sudo apt-get install \
636 sudo apt-get install \
646 libpoppler-glib-dev \
659 # libreoffice support doesn't work when compiled with clang on Linux
662 export CC='ccache clang'
663 # Build with the llvm c++ library to catch more portability issues.
664 export CXX='ccache clang++ -stdlib=libc++'
666 ./configure --enable-werror
667 export XAPIAN_CONFIG=$PWD/xapian-config
669 pushd xapian-applications/omega
670 ./configure --enable-werror
672 pushd xapian-bindings
673 ./configure --enable-werror --with-python3 --with-tcl
676 ./configure --enable-werror
680 make -j2 -C xapian-core
681 make -j2 -C xapian-applications/omega
682 make -j2 -C xapian-bindings
683 make -j2 -C xapian-letor
686 export AUTOMATED_TESTING=1
688 make -j2 -C xapian-core check
689 make -j2 -C xapian-applications/omega check
690 make -j2 -C xapian-bindings check
691 make -j2 -C xapian-letor check
693 # Test with the oldest clang version we easily can.
695 runs-on: 'ubuntu-20.04'
697 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
700 - name: Install CCache
701 uses: hendrikmuhs/ccache-action@v1
703 key: ${{ github.job }}
704 - name: Fetch distribution
705 uses: actions/download-artifact@v4
706 - name: Unpack distribution
711 tar --strip-components=1 -xf xapian-core-*.tar.xz
713 pushd xapian-applications/omega
714 tar --strip-components=1 -xf xapian-omega-*.tar.xz
716 pushd xapian-bindings
717 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
720 tar --strip-components=1 -xf xapian-letor-*.tar.xz
722 - name: Install package dependencies
726 sudo apt-get install \
728 sudo apt-get install \
737 libpoppler-glib-dev \
750 # libreoffice support doesn't work when compiled with clang on Linux
753 export CC='ccache clang-6.0'
754 export CXX='ccache clang++-6.0'
756 ./configure --enable-werror
757 export XAPIAN_CONFIG=$PWD/xapian-config
759 pushd xapian-applications/omega
760 ./configure --enable-werror
762 pushd xapian-bindings
763 ./configure --enable-werror --with-python3 --with-tcl
766 ./configure --enable-werror
770 make -j2 -C xapian-core
771 make -j2 -C xapian-applications/omega
772 make -j2 -C xapian-bindings
773 make -j2 -C xapian-letor
776 export AUTOMATED_TESTING=1
778 make -j2 -C xapian-core check
779 make -j2 -C xapian-applications/omega check
780 make -j2 -C xapian-bindings check
781 make -j2 -C xapian-letor check
783 # GCC 7 is the oldest GCC we currently aim to support.
784 # Ubuntu 20.04 has GCC 7.5.0.
787 runs-on: 'ubuntu-20.04'
789 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
792 - name: Install CCache
793 uses: hendrikmuhs/ccache-action@v1
795 key: ${{ github.job }}
796 - name: Fetch distribution
797 uses: actions/download-artifact@v4
798 - name: Unpack distribution
803 tar --strip-components=1 -xf xapian-core-*.tar.xz
805 pushd xapian-applications/omega
806 tar --strip-components=1 -xf xapian-omega-*.tar.xz
808 pushd xapian-bindings
809 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
812 tar --strip-components=1 -xf xapian-letor-*.tar.xz
814 - name: Install package dependencies
817 sudo apt-get install \
820 sudo apt-get install \
831 libpoppler-glib-dev \
842 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
847 export CC='ccache gcc-7'
848 export CXX='ccache g++-7'
850 ./configure --enable-werror
851 export XAPIAN_CONFIG=$PWD/xapian-config
853 pushd xapian-applications/omega
854 ./configure --enable-werror
856 pushd xapian-bindings
857 ./configure --enable-werror
860 ./configure --enable-werror
864 make -j2 -C xapian-core
865 make -j2 -C xapian-applications/omega
866 make -j2 -C xapian-bindings
867 make -j2 -C xapian-letor
870 export AUTOMATED_TESTING=1
872 make -j2 -C xapian-core check
873 make -j2 -C xapian-applications/omega check
874 make -j2 -C xapian-bindings check
875 make -j2 -C xapian-letor check
878 runs-on: 'ubuntu-20.04'
881 EM_COMPILER_WRAPPER: ccache
883 - name: Install CCache
884 uses: hendrikmuhs/ccache-action@v1
886 key: ${{ github.job }}
887 - name: Fetch distribution
888 uses: actions/download-artifact@v4
889 - name: Unpack distribution
894 tar --strip-components=1 -xf xapian-core-*.tar.xz
897 uses: mymindstorm/setup-emsdk@v13
899 # With 3.1.51 `emcc -c` seems to fail.
901 # This is the name of the cache folder.
902 # The cache folder will be placed in the build directory,
903 # so make sure it doesn't conflict with anything!
904 actions-cache-folder: 'emsdk-cache'
906 uses: actions/setup-node@v4
910 export CPPFLAGS='-DFLINTLOCK_USE_FLOCK'
911 export CXXFLAGS='-Oz -s USE_ZLIB=1 -fno-rtti'
912 emconfigure ./configure --enable-werror --disable-shared
920 em++ -Oz -s USE_ZLIB=1 -std=c++11 -s WASM=1 -Iinclude emscripten/xapianjstest.cc .libs/libxapian-1.5.a -o emscripten/xapianjstest.js
925 runs-on: 'ubuntu-latest'
926 container: debian:stable
928 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
931 - name: Install package dependencies
948 libpoppler-glib-dev \
959 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
962 - name: Install CCache
963 uses: hendrikmuhs/ccache-action@v1
965 key: ${{ github.job }}
966 - name: Fetch distribution
967 uses: actions/download-artifact@v4
968 - name: Unpack distribution
973 tar --strip-components=1 -xf xapian-core-*.tar.xz
975 pushd xapian-applications/omega
976 tar --strip-components=1 -xf xapian-omega-*.tar.xz
978 pushd xapian-bindings
979 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
982 tar --strip-components=1 -xf xapian-letor-*.tar.xz
986 export CC='ccache gcc'
987 export CXX='ccache g++'
989 ./configure --enable-werror
990 export XAPIAN_CONFIG=$PWD/xapian-config
992 pushd xapian-applications/omega
993 ./configure --enable-werror
995 pushd xapian-bindings
996 ./configure --enable-werror
999 ./configure --enable-werror
1003 make -j2 -C xapian-core
1004 make -j2 -C xapian-applications/omega
1005 make -j2 -C xapian-bindings
1006 make -j2 -C xapian-letor
1009 export AUTOMATED_TESTING=1
1011 make -j2 -C xapian-core check
1012 make -j2 -C xapian-applications/omega check
1013 make -j2 -C xapian-bindings check
1014 make -j2 -C xapian-letor check
1017 runs-on: 'macos-latest'
1019 LIBEXTRACTOR_PREFIX: '/usr/local/lib/libextractor'
1022 - name: Install CCache
1023 uses: hendrikmuhs/ccache-action@v1
1025 key: ${{ github.job }}
1026 - name: Fetch distribution
1027 uses: actions/download-artifact@v4
1028 - name: Unpack distribution
1033 tar --strip-components=1 -xf xapian-core-*.tar.xz
1035 pushd xapian-applications/omega
1036 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1038 pushd xapian-bindings
1039 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1042 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1044 - name: Install package dependencies
1046 # Workaround apparent homebrew bug 2024-01-17
1047 rm -f /usr/local/bin/2to3-3.* /usr/local/bin/idle3.* /usr/local/bin/pydoc3.* /usr/local/bin/python3.* /usr/local/bin/python3.*-config
1048 rm -f /usr/local/bin/2to3 /usr/local/bin/idle3 /usr/local/bin/pydoc3 /usr/local/bin/python3 /usr/local/bin/python3-config
1070 # homebrew tesseract 5.2.0 only extracts "ee" from img/Test1.gif (5.1.0
1075 export CC='ccache gcc'
1076 export CXX='ccache g++'
1077 # Workaround for https://github.com/Homebrew/homebrew-core/issues/136873
1078 export EATMYDATA=$(brew --prefix libeatmydata)/bin/eatmydata
1079 export PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig
1081 ./configure --enable-werror --prefix='${{ runner.temp }}/XapianInstall'
1082 export XAPIAN_CONFIG=$PWD/xapian-config
1084 pushd xapian-applications/omega
1085 ./configure --enable-werror --with-libiconv-prefix=/usr/local/opt/libiconv
1087 pushd xapian-bindings
1088 ./configure --enable-werror
1091 ./configure --enable-werror
1095 make -j3 -C xapian-core
1096 make -j3 -C xapian-core install
1097 make -j3 -C xapian-applications/omega
1098 make -j3 -C xapian-bindings
1099 make -j3 -C xapian-letor
1102 export AUTOMATED_TESTING=1
1104 make -j3 -C xapian-core check
1105 make -j3 -C xapian-applications/omega check
1106 make -j3 -C xapian-bindings check
1107 make -j3 -C xapian-letor check
1110 runs-on: 'ubuntu-22.04'
1113 - name: Install CCache
1114 uses: hendrikmuhs/ccache-action@v1
1116 key: ${{ github.job }}
1117 - name: Fetch distribution
1118 uses: actions/download-artifact@v4
1119 - name: Unpack distribution
1124 tar --strip-components=1 -xf xapian-core-*.tar.xz
1127 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1129 - name: Install package dependencies
1132 sudo apt-get install \
1133 g++-mingw-w64-i686-win32 \
1134 mingw-w64-i686-dev \
1135 binutils-mingw-w64-i686 \
1136 libz-mingw-w64-dev \
1141 export PATH=/usr/lib/ccache:$PATH
1143 ./configure --enable-werror --host i686-w64-mingw32
1144 export XAPIAN_CONFIG=$PWD/xapian-config
1147 ./configure --enable-werror --host i686-w64-mingw32
1151 export PATH=/usr/lib/ccache:$PATH
1152 make -j2 -C xapian-core
1153 make -j2 -C xapian-letor
1156 # Stop mono binfmt trying to run .exe files.
1157 sudo apt-get purge mono-runtime
1158 sudo dpkg --add-architecture i386
1160 sudo apt-get install wine32 wine-binfmt:amd64 wine:amd64
1161 export AUTOMATED_TESTING=1
1163 export WINEPATH="$PWD/xapian-core/.libs;/usr/lib/gcc/i686-w64-mingw32/`i686-w64-mingw32-g++ --version 2>/dev/null|head -n1|sed 's/.*) //;s/ .*//'`"
1164 make -j2 -C xapian-core check
1165 export WINEPATH="$PWD/xapian-letor/.libs;$WINEPATH"
1166 make -j2 -C xapian-letor check
1168 mingw64-x86-64-cross:
1169 runs-on: 'ubuntu-22.04'
1172 - name: Install CCache
1173 uses: hendrikmuhs/ccache-action@v1
1175 key: ${{ github.job }}
1176 - name: Fetch distribution
1177 uses: actions/download-artifact@v4
1178 - name: Unpack distribution
1183 tar --strip-components=1 -xf xapian-core-*.tar.xz
1184 export XAPIAN_CONFIG=$PWD/xapian-config
1187 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1189 - name: Install package dependencies
1192 # Stop mono binfmt trying to run .exe files.
1193 sudo apt-get purge mono-runtime
1194 sudo apt-get install \
1195 g++-mingw-w64-x86-64-win32 \
1196 mingw-w64-x86-64-dev \
1197 binutils-mingw-w64-x86-64 \
1198 libz-mingw-w64-dev \
1203 sudo dpkg --add-architecture i386
1205 sudo apt-get install wine32
1209 export PATH=/usr/lib/ccache:$PATH
1211 ./configure --enable-werror --host x86_64-w64-mingw32
1212 export XAPIAN_CONFIG=$PWD/xapian-config
1215 ./configure --enable-werror --host x86_64-w64-mingw32
1219 export PATH=/usr/lib/ccache:$PATH
1220 make -j2 -C xapian-core
1221 make -j2 -C xapian-letor
1224 export AUTOMATED_TESTING=1
1226 export WINEPATH="$PWD/xapian-core/.libs;/usr/lib/gcc/x86_64-w64-mingw32/`x86_64-w64-mingw32-g++ --version 2>/dev/null|head -n1|sed 's/.*) //;s/ .*//'`"
1227 make -j2 -C xapian-core check
1228 export WINEPATH="$PWD/xapian-letor/.libs;$WINEPATH"
1229 make -j2 -C xapian-letor check
1232 runs-on: 'ubuntu-22.04'
1233 container: fedora:35
1236 - name: Install build tools
1237 run: dnf install -y --nodocs ccache xz
1238 - name: Install CCache
1239 uses: hendrikmuhs/ccache-action@v1
1241 key: ${{ github.job }}
1242 - name: Fetch distribution
1243 uses: actions/download-artifact@v4
1244 - name: Unpack distribution
1249 tar --strip-components=1 -xf xapian-core-*.tar.xz
1251 pushd xapian-applications/omega
1252 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1254 pushd xapian-bindings
1255 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1258 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1260 - name: Install package dependencies
1262 dnf install -y --nodocs \
1263 gcc-c++ file-devel libuuid-devel pcre2-devel perl zlib-devel make pkg-config \
1264 python3-devel python3-setuptools python3-sphinx \
1265 ruby ruby-devel rubygems rubygem-rdoc rubygem-json rubygem-test-unit \
1269 export CC='ccache gcc'
1270 export CXX='ccache g++'
1272 ./configure --enable-werror
1273 export XAPIAN_CONFIG=$PWD/xapian-config
1275 pushd xapian-applications/omega
1276 ./configure --enable-werror
1278 pushd xapian-bindings
1279 ./configure --enable-werror
1282 ./configure --enable-werror
1286 make -j2 -C xapian-core
1287 make -j2 -C xapian-applications/omega
1288 make -j2 -C xapian-bindings
1289 make -j2 -C xapian-letor
1292 export AUTOMATED_TESTING=1
1294 make -j2 -C xapian-core check
1295 make -j2 -C xapian-applications/omega check
1296 make -j2 -C xapian-bindings check
1297 make -j2 -C xapian-letor check
1300 runs-on: 'ubuntu-22.04'
1302 NDK: '/usr/local/lib/android/sdk/ndk/25.2.9519653'
1303 # NDK: '/home/runner/ndk'
1304 host_triplet: 'armv7a-linux-androideabi33'
1307 - name: Install CCache
1308 uses: hendrikmuhs/ccache-action@v1
1310 key: ${{ github.job }}
1311 - name: Fetch distribution
1312 uses: actions/download-artifact@v4
1313 - name: Unpack distribution
1318 tar --strip-components=1 -xf xapian-core-*.tar.xz
1322 PATH=$PATH:$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin
1324 ./configure --enable-werror \
1325 --host=$host_triplet \
1326 CC="ccache ${host_triplet}-clang" \
1327 CXX="ccache ${host_triplet}-clang++" \
1328 PKG_CONFIG=/bin/false
1331 PATH=$PATH:$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin
1332 make -j2 -C xapian-core
1333 # FIXME: Run tests under android emulator?
1336 # We only test 64-bit cygwin as 32-bit support has been dropped as of
1338 # https://cygwin.com/pipermail/cygwin/2022-November/252542.html
1339 runs-on: 'windows-latest'
1343 # `-o incr` needed as GHA supplies shell fragments with DOS EOLs.
1344 shell: 'C:\tools\cygwin\bin\bash.EXE --noprofile --norc -e -o igncr -o pipefail {0}'
1346 - name: Install Cygwin
1347 uses: egor-tensin/setup-cygwin@v4
1349 packages: gcc-g++ make file-devel libpcre2-devel zlib-devel perl
1350 - name: Install CCache
1351 uses: hendrikmuhs/ccache-action@v1
1353 key: ${{ github.job }}
1354 - name: Fetch distribution
1355 uses: actions/download-artifact@v4
1356 - name: Unpack distribution
1361 tar --strip-components=1 -xf xapian-core-*.tar.xz
1363 pushd xapian-applications/omega
1364 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1366 pushd xapian-bindings
1367 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1370 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1374 export CC='ccache gcc'
1375 export CXX='ccache g++'
1377 ./configure --enable-werror
1378 export XAPIAN_CONFIG=$PWD/xapian-config
1380 pushd xapian-applications/omega
1381 ./configure --enable-werror
1383 # pushd xapian-bindings
1384 # ./configure --enable-werror
1387 ./configure --enable-werror
1391 make -j2 -C xapian-core
1392 make -j2 -C xapian-applications/omega
1393 # make -j2 -C xapian-bindings
1394 make -j2 -C xapian-letor
1397 export AUTOMATED_TESTING=1
1399 make -j2 -C xapian-core check
1400 make -j2 -C xapian-applications/omega check
1401 # make -j2 -C xapian-bindings check
1402 make -j2 -C xapian-letor check
1405 runs-on: 'windows-latest'
1411 - uses: msys2/setup-msys2@v2
1420 - name: Install CCache
1421 uses: hendrikmuhs/ccache-action@v1
1423 key: ${{ github.job }}
1425 - name: Fetch distribution
1426 uses: actions/download-artifact@v4
1427 - name: Unpack distribution
1432 tar --strip-components=1 -xf xapian-core-*.tar.xz
1434 pushd xapian-applications/omega
1435 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1437 # pushd xapian-bindings
1438 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1441 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1445 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1446 export CC='sccache gcc'
1447 export CXX='sccache g++'
1449 ./configure --enable-werror
1450 export XAPIAN_CONFIG=$PWD/xapian-config
1452 pushd xapian-applications/omega
1453 ./configure --enable-werror
1455 # pushd xapian-bindings
1456 # ./configure --enable-werror
1459 ./configure --enable-werror
1463 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1464 make -j2 -C xapian-core
1465 make -j2 -C xapian-applications/omega
1466 # make -j2 -C xapian-bindings
1467 make -j2 -C xapian-letor
1470 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1471 export AUTOMATED_TESTING=1
1473 make -j2 -C xapian-core check
1474 make -j2 -C xapian-applications/omega check
1475 # make -j2 -C xapian-bindings check
1476 make -j2 -C xapian-letor check
1479 runs-on: 'windows-latest'
1485 - uses: msys2/setup-msys2@v2
1494 - name: Install CCache
1495 uses: hendrikmuhs/ccache-action@v1
1497 key: ${{ github.job }}
1499 - name: Fetch distribution
1500 uses: actions/download-artifact@v4
1501 - name: Unpack distribution
1506 tar --strip-components=1 -xf xapian-core-*.tar.xz
1508 pushd xapian-applications/omega
1509 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1511 # pushd xapian-bindings
1512 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1515 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1519 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1520 export CC='sccache gcc'
1521 export CXX='sccache g++'
1523 ./configure --enable-werror
1524 export XAPIAN_CONFIG=$PWD/xapian-config
1526 pushd xapian-applications/omega
1527 ./configure --enable-werror
1529 # pushd xapian-bindings
1530 # ./configure --enable-werror
1533 ./configure --enable-werror
1537 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1538 make -j2 -C xapian-core
1539 make -j2 -C xapian-applications/omega
1540 # make -j2 -C xapian-bindings
1541 make -j2 -C xapian-letor
1544 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1545 export AUTOMATED_TESTING=1
1547 make -j2 -C xapian-core check
1548 make -j2 -C xapian-applications/omega check
1549 # make -j2 -C xapian-bindings check
1550 make -j2 -C xapian-letor check
1553 runs-on: 'windows-latest'
1559 - uses: msys2/setup-msys2@v2
1566 - name: Install CCache
1567 uses: hendrikmuhs/ccache-action@v1
1569 key: ${{ github.job }}
1571 - name: Fetch distribution
1572 uses: actions/download-artifact@v4
1573 - name: Unpack distribution
1578 tar --strip-components=1 -xf xapian-core-*.tar.xz
1580 # pushd xapian-applications/omega
1581 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1583 # pushd xapian-bindings
1584 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1587 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1591 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1592 export CC='sccache gcc'
1593 export CXX='sccache g++'
1595 ./configure --enable-werror
1596 export XAPIAN_CONFIG=$PWD/xapian-config
1598 # FIXME: Fails to find magic.h for some reason even though it is
1599 # installed via file:p above.
1600 # pushd xapian-applications/omega
1601 # ./configure --enable-werror
1603 # pushd xapian-bindings
1604 # ./configure --enable-werror
1607 ./configure --enable-werror
1611 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1612 make -j2 -C xapian-core
1613 # make -j2 -C xapian-applications/omega
1614 # make -j2 -C xapian-bindings
1615 make -j2 -C xapian-letor
1618 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1619 export AUTOMATED_TESTING=1
1621 make -j2 -C xapian-core check
1622 # make -j2 -C xapian-applications/omega check
1623 # make -j2 -C xapian-bindings check
1624 make -j2 -C xapian-letor check
1627 runs-on: 'windows-2019'
1633 - uses: msys2/setup-msys2@v2
1635 release: true # Use the pre-installed MSYS2
1638 - name: Install CCache
1639 uses: hendrikmuhs/ccache-action@v1
1641 key: ${{ github.job }}
1643 - name: Fetch distribution
1644 uses: actions/download-artifact@v4
1645 - name: Unpack distribution
1650 tar --strip-components=1 -xf xapian-core-*.tar.xz
1652 # Need libmagic for omega
1653 # pushd xapian-applications/omega
1654 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1656 # pushd xapian-bindings
1657 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1660 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1662 - name: Set up Visual Studio shell
1663 uses: egor-tensin/vs-shell@v2
1669 # Setup sccache for cl.
1670 ln /c/Users/runneradmin/.cargo/bin/{sccache.exe,cl.exe}
1671 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1672 # We find "link" from coreutils rather than from MSVC. The coreutils
1673 # "link" is not a useful tool to us, so just delete it rather than
1674 # trying to reorder PATH.
1675 rm /usr/bin/link.exe || true
1678 curl --retry 5 --retry-connrefused -L https://github.com/xapian/xapian-dev-deps/releases/download/current/zlib-1.2.13.tar.gz|tar --strip-components=1 -zxf -
1679 # Don't build zlib with -MD as it seems this flag needs to be used
1680 # consistently across the build. Don't use -Zi -Fd"zlib" as
1681 # ccache/sccache don't seem to be able to handle that.
1683 # Don't build zlib with a fixed base address on x64 as that gives
1684 # linker warning LNK4281.
1685 sed -i 's/\(^CFLAGS *= *-nologo \)-MD \(.* \)-Zi -Fd"zlib" /\1\2/;s/-base:0x[0-9A-Fa-f]* //' win32/Makefile.msc
1686 # Only build the shared library.
1687 nmake -nologo -f 'win32\Makefile.msc' zlib1.dll
1692 export CC="cl -nologo"
1693 export CXX="$PWD/xapian-core/compile cl -nologo"
1694 export CPPFLAGS="-I$PWD/zlib"
1695 # Standard C++ stack unwinding; assume extern "C" functions never throw.
1696 export CXXFLAGS=-EHsc
1697 export LDFLAGS="-L$PWD/zlib"
1698 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1700 ./configure --enable-werror --disable-shared
1701 export XAPIAN_CONFIG=$PWD/xapian-config
1703 # pushd xapian-applications/omega
1704 # ./configure --enable-werror
1706 # pushd xapian-bindings
1707 # ./configure --enable-werror
1710 ./configure --enable-werror --disable-shared
1714 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1715 make -j2 -C xapian-core
1716 # make -j2 -C xapian-applications/omega
1717 # make -j2 -C xapian-binding
1718 make -j2 -C xapian-letor
1721 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1722 export AUTOMATED_TESTING=1
1724 make -j2 -C xapian-core check
1725 # make -j2 -C xapian-applications/omega check
1726 # make -j2 -C xapian-bindings check
1727 make -j2 -C xapian-letor check
1730 runs-on: 'windows-2022'
1736 - uses: msys2/setup-msys2@v2
1738 release: true # Use the pre-installed MSYS2
1741 - name: Install CCache
1742 uses: hendrikmuhs/ccache-action@v1
1744 key: ${{ github.job }}
1746 - name: Fetch distribution
1747 uses: actions/download-artifact@v4
1748 - name: Unpack distribution
1753 tar --strip-components=1 -xf xapian-core-*.tar.xz
1755 # Need libmagic for omega
1756 # pushd xapian-applications/omega
1757 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1759 # pushd xapian-bindings
1760 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1763 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1765 - name: Set up Visual Studio shell
1766 uses: egor-tensin/vs-shell@v2
1772 # Setup sccache for cl.
1773 ln /c/Users/runneradmin/.cargo/bin/{sccache.exe,cl.exe}
1774 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1775 # We find "link" from coreutils rather than from MSVC. The coreutils
1776 # "link" is not a useful tool to us, so just delete it rather than
1777 # trying to reorder PATH.
1778 rm /usr/bin/link.exe || true
1781 curl --retry 5 --retry-connrefused -L https://github.com/xapian/xapian-dev-deps/releases/download/current/zlib-1.2.13.tar.gz|tar --strip-components=1 -zxf -
1782 # Don't build zlib with -MD as it seems this flag needs to be used
1783 # consistently across the build. Don't use -Zi -Fd"zlib" as
1784 # ccache/sccache don't seem to be able to handle that.
1786 # Don't build zlib with a fixed base address on x64 as that gives
1787 # linker warning LNK4281.
1788 sed -i 's/\(^CFLAGS *= *-nologo \)-MD \(.* \)-Zi -Fd"zlib" /\1\2/;s/-base:0x[0-9A-Fa-f]* //' win32/Makefile.msc
1789 # Only build the shared library.
1790 nmake -nologo -f 'win32\Makefile.msc' zlib1.dll
1795 export CC="cl -nologo"
1796 export CXX="$PWD/xapian-core/compile cl -nologo"
1797 export CPPFLAGS="-I$PWD/zlib"
1798 # Standard C++ stack unwinding; assume extern "C" functions never throw.
1799 export CXXFLAGS=-EHsc
1800 export LDFLAGS="-L$PWD/zlib"
1801 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1803 ./configure --enable-werror --disable-shared
1804 export XAPIAN_CONFIG=$PWD/xapian-config
1806 # pushd xapian-applications/omega
1807 # ./configure --enable-werror
1809 # pushd xapian-bindings
1810 # ./configure --enable-werror
1813 ./configure --enable-werror --disable-shared
1817 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1818 make -j2 -C xapian-core
1819 # make -j2 -C xapian-applications/omega
1820 # make -j2 -C xapian-binding
1821 make -j2 -C xapian-letor
1824 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1825 export AUTOMATED_TESTING=1
1827 make -j2 -C xapian-core check
1828 # make -j2 -C xapian-applications/omega check
1829 # make -j2 -C xapian-bindings check
1830 make -j2 -C xapian-letor check
1833 runs-on: 'windows-2019'
1839 - uses: msys2/setup-msys2@v2
1841 release: true # Use the pre-installed MSYS2
1844 - name: Install CCache
1845 uses: hendrikmuhs/ccache-action@v1
1847 key: ${{ github.job }}
1849 - name: Fetch distribution
1850 uses: actions/download-artifact@v4
1851 - name: Unpack distribution
1856 tar --strip-components=1 -xf xapian-core-*.tar.xz
1858 # Need libmagic for omega
1859 # pushd xapian-applications/omega
1860 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1862 # pushd xapian-bindings
1863 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1866 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1868 - name: Set up Visual Studio shell
1869 uses: egor-tensin/vs-shell@v2
1875 # Setup sccache for cl.
1876 ln /c/Users/runneradmin/.cargo/bin/{sccache.exe,cl.exe}
1877 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1878 # We find "link" from coreutils rather than from MSVC. The coreutils
1879 # "link" is not a useful tool to us, so just delete it rather than
1880 # trying to reorder PATH.
1881 rm /usr/bin/link.exe || true
1884 curl --retry 5 --retry-connrefused -L https://github.com/xapian/xapian-dev-deps/releases/download/current/zlib-1.2.13.tar.gz|tar --strip-components=1 -zxf -
1885 # Don't build zlib with -MD as it seems this flag needs to be used
1886 # consistently across the build. Don't use -Zi -Fd"zlib" as
1887 # ccache/sccache don't seem to be able to handle that.
1888 sed -i 's/\(^CFLAGS *= *-nologo \)-MD \(.* \)-Zi -Fd"zlib" /\1\2/' win32/Makefile.msc
1889 # Only build the static library.
1890 nmake -nologo -f 'win32\Makefile.msc' zlib.lib
1895 export CC="cl -nologo"
1896 export CXX="$PWD/xapian-core/compile cl -nologo"
1897 export CPPFLAGS="-I$PWD/zlib"
1898 # Standard C++ stack unwinding; assume extern "C" functions never throw.
1899 export CXXFLAGS=-EHsc
1900 export LDFLAGS="-L$PWD/zlib"
1901 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1903 ./configure --enable-werror --disable-shared
1904 export XAPIAN_CONFIG=$PWD/xapian-config
1906 # pushd xapian-applications/omega
1907 # ./configure --enable-werror
1909 # pushd xapian-bindings
1910 # ./configure --enable-werror
1913 ./configure --enable-werror --disable-shared
1917 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1918 make -j2 -C xapian-core
1919 # make -j2 -C xapian-applications/omega
1920 # make -j2 -C xapian-binding
1921 make -j2 -C xapian-letor
1924 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1925 export AUTOMATED_TESTING=1
1927 make -j2 -C xapian-core check
1928 # make -j2 -C xapian-applications/omega check
1929 # make -j2 -C xapian-bindings check
1930 make -j2 -C xapian-letor check
1933 runs-on: 'windows-2022'
1939 - uses: msys2/setup-msys2@v2
1941 release: true # Use the pre-installed MSYS2
1944 - name: Install CCache
1945 uses: hendrikmuhs/ccache-action@v1
1947 key: ${{ github.job }}
1949 - name: Fetch distribution
1950 uses: actions/download-artifact@v4
1951 - name: Unpack distribution
1956 tar --strip-components=1 -xf xapian-core-*.tar.xz
1958 # Need libmagic for omega
1959 # pushd xapian-applications/omega
1960 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1962 # pushd xapian-bindings
1963 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1966 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1968 - name: Set up Visual Studio shell
1969 uses: egor-tensin/vs-shell@v2
1975 # Setup sccache for cl.
1976 ln /c/Users/runneradmin/.cargo/bin/{sccache.exe,cl.exe}
1977 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1978 # We find "link" from coreutils rather than from MSVC. The coreutils
1979 # "link" is not a useful tool to us, so just delete it rather than
1980 # trying to reorder PATH.
1981 rm /usr/bin/link.exe || true
1984 curl --retry 5 --retry-connrefused -L https://github.com/xapian/xapian-dev-deps/releases/download/current/zlib-1.2.13.tar.gz|tar --strip-components=1 -zxf -
1985 # Don't build zlib with -MD as it seems this flag needs to be used
1986 # consistently across the build. Don't use -Zi -Fd"zlib" as
1987 # ccache/sccache don't seem to be able to handle that.
1988 sed -i 's/\(^CFLAGS *= *-nologo \)-MD \(.* \)-Zi -Fd"zlib" /\1\2/' win32/Makefile.msc
1989 # Only build the static library.
1990 nmake -nologo -f 'win32\Makefile.msc' zlib.lib
1995 export CC="cl -nologo"
1996 export CXX="$PWD/xapian-core/compile cl -nologo"
1997 export CPPFLAGS="-I$PWD/zlib"
1998 # Standard C++ stack unwinding; assume extern "C" functions never throw.
1999 export CXXFLAGS=-EHsc
2000 export LDFLAGS="-L$PWD/zlib"
2001 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
2003 ./configure --enable-werror --disable-shared
2004 export XAPIAN_CONFIG=$PWD/xapian-config
2006 # pushd xapian-applications/omega
2007 # ./configure --enable-werror
2009 # pushd xapian-bindings
2010 # ./configure --enable-werror
2013 ./configure --enable-werror --disable-shared
2017 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
2018 make -j2 -C xapian-core
2019 # make -j2 -C xapian-applications/omega
2020 # make -j2 -C xapian-binding
2021 make -j2 -C xapian-letor
2024 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
2025 export AUTOMATED_TESTING=1
2027 make -j2 -C xapian-core check
2028 # make -j2 -C xapian-applications/omega check
2029 # make -j2 -C xapian-bindings check
2030 make -j2 -C xapian-letor check
2033 runs-on: 'ubuntu-22.04'
2036 - name: Install CCache
2037 uses: hendrikmuhs/ccache-action@v1
2039 key: ${{ github.job }}
2040 - name: Fetch distribution
2041 uses: actions/download-artifact@v4
2042 - name: Unpack distribution
2046 # Do actual unpacking on freebsd, mostly to help reduce the size of the
2047 # rsync output in the logs.
2048 - uses: vmactions/freebsd-vm@v1
2049 # Limit wasted resources if the VM action gets into an infinite loop.
2052 # The default is csh!
2056 pkg install -y bash ccache perl5 pcre2
2057 ccache --set-config=cache_dir='/Users/runner/work/xapian/xapian/.ccache'
2058 ccache --set-config=max_size='500M'
2059 ccache --set-config=compression=true
2062 export CC='ccache cc'
2063 export CXX='ccache c++'
2065 tar --strip-components=1 -xf xapian-core-*.tar.xz
2066 ./configure --enable-werror
2067 export XAPIAN_CONFIG=$PWD/xapian-config
2069 cd xapian-applications/omega
2070 tar --strip-components=1 -xf xapian-omega-*.tar.xz
2071 ./configure --enable-werror
2073 # cd xapian-bindings
2074 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
2077 tar --strip-components=1 -xf xapian-letor-*.tar.xz
2078 ./configure --enable-werror
2080 # Everything gets run in one script so use V=0 to reduce the size of
2081 # the log, but re-run without V=0 on failure to show the compiler
2083 make -j2 -C xapian-core V=0 || make -C xapian-core
2084 make -j2 -C xapian-applications/omega V=0 || make -C xapian-core
2085 make -j2 -C xapian-letor V=0 || make -C xapian-letor
2086 export AUTOMATED_TESTING=1
2088 make -j2 -C xapian-core check V=0
2089 make -j2 -C xapian-applications/omega check V=0
2090 make -j2 -C xapian-letor check V=0
2093 name: 'Automated run of xapian-check-patch'
2094 runs-on: 'ubuntu-latest'
2096 - name: Check out repository code
2097 uses: actions/checkout@v4
2100 show-progress: false
2101 - name: "Automated run of xapian-check-patch"
2102 # Run the style checking script, checking changes between the common
2103 # ancestor of the target branch of the PR (or master if this isn't a PR)
2104 # and the revision being checked.
2106 git diff origin/${GITHUB_BASE_REF:-master}.. --|xapian-maintainer-tools/xapian-check-patch