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@v3
33 - name: Install CCache
34 uses: hendrikmuhs/ccache-action@v1
36 key: ${{ github.job }}
37 - name: Cache bootstrap tools
38 uses: actions/cache@v3
43 key: ${{ github.job }}-${{ runner.os }}-${{ hashFiles( 'bootstrap', 'patches/**' ) }}
44 - name: Install package dependencies
47 sudo apt-get install \
75 libextractor-plugins-all \
77 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
80 - name: bootstrap source tree
82 # If we restored cached bootstrap tools their timestamps will be older
83 # than checked out files, but we stored them based on a hash of the
84 # files in git that determine what gets built so we know they are in
85 # fact up to date. Just touch any stamp files that exist.
86 touch --no-create INST/*.stamp
87 export PATH=/usr/lib/ccache:$PATH
88 echo verbose=off > ~/.wgetrc
89 ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
91 run: ./configure CC='ccache gcc' CXX='ccache g++'
95 run: make -j2 check AUTOMATED_TESTING=1 VERBOSE=1
96 - name: Create distribution tarball
99 - uses: actions/upload-artifact@v3
102 xapian-core/xapian-core-*.tar.xz
103 xapian-applications/omega/xapian-omega-*.tar.xz
104 xapian-bindings/xapian-bindings-*.tar.xz
105 xapian-letor/xapian-letor-*.tar.xz
107 if-no-files-found: error
108 - name: Check generated files are in .gitignore
109 # grep '^' passes through all input while giving a non-zero exit status
110 # if that input is empty.
111 run: git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
114 runs-on: 'ubuntu-latest'
116 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
119 - name: Install CCache
120 uses: hendrikmuhs/ccache-action@v1
122 key: ${{ github.job }}
123 - name: Fetch distribution
124 uses: actions/download-artifact@v3
125 - name: Unpack distribution
130 tar --strip-components=1 -xf xapian-core-*.tar.xz
132 pushd xapian-applications/omega
133 tar --strip-components=1 -xf xapian-omega-*.tar.xz
135 # pushd xapian-bindings
136 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
139 tar --strip-components=1 -xf xapian-letor-*.tar.xz
141 - name: Install package dependencies
144 sudo apt-get install \
157 libpoppler-glib-dev \
168 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
173 # We use clang here because (at least currently) it supports a few
174 # extra sanitiser checks compared to GCC.
175 export CC='ccache clang'
176 export CXX='ccache clang++'
177 # float-divide-by-zero, nullability and unsigned-overflow aren't
178 # undefined behaviour checks, but they catch for things we don't expect
180 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'
182 ./configure --enable-werror
183 export XAPIAN_CONFIG=$PWD/xapian-config
185 pushd xapian-applications/omega
186 ./configure --enable-werror
188 # pushd xapian-bindings
189 ## PHP calls dlopen() with "RTLD_DEEPBIND flag which is incompatible
190 ## with sanitizer runtime".
192 ## Other bindings should work, but need to debug why they fail to
193 ## work properly currently (with Lua, Python and Tcl we fail to find the
194 ## symbol __ubsan_handle_function_type_mismatch when the module is
195 ## loaded which seems like a setup problem).
196 # ./configure --enable-werror --without-lua --without-php --without-python3 --without-tcl
199 ./configure --enable-werror
203 make -j2 -C xapian-core
204 make -j2 -C xapian-applications/omega
205 # 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'
206 make -j2 -C xapian-letor
209 export AUTOMATED_TESTING=1
211 make -j2 -C xapian-core check
212 make -j2 -C xapian-applications/omega check
213 # 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'
214 make -j2 -C xapian-letor check
217 runs-on: 'ubuntu-20.04'
219 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
222 - name: Install CCache
223 uses: hendrikmuhs/ccache-action@v1
225 key: ${{ github.job }}
226 - name: Fetch distribution
227 uses: actions/download-artifact@v3
228 - name: Unpack distribution
233 tar --strip-components=1 -xf xapian-core-*.tar.xz
235 pushd xapian-applications/omega
236 tar --strip-components=1 -xf xapian-omega-*.tar.xz
238 pushd xapian-bindings
239 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
242 tar --strip-components=1 -xf xapian-letor-*.tar.xz
244 - name: Install package dependencies
247 sudo apt-get install \
260 libpoppler-glib-dev \
271 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer
272 # tesseract's C++ API uses std::vector so would need rebuilding with
273 # -D_GLIBCXX_DEBUG too.
278 export CC='ccache gcc'
279 export CXX='ccache g++'
280 export CPPFLAGS='-D_GLIBCXX_DEBUG'
282 ./configure --enable-werror
283 export XAPIAN_CONFIG=$PWD/xapian-config
285 pushd xapian-applications/omega
286 ./configure --enable-werror
288 pushd xapian-bindings
289 ./configure --enable-werror
292 ./configure --enable-werror
296 make -j2 -C xapian-core
297 make -j2 -C xapian-applications/omega
298 make -j2 -C xapian-bindings
299 make -j2 -C xapian-letor
302 export AUTOMATED_TESTING=1
304 make -j2 -C xapian-core check
305 make -j2 -C xapian-applications/omega check
306 make -j2 -C xapian-bindings check
307 make -j2 -C xapian-letor check
310 # _FORTIFY_SOURCE level 3 requires GCC 12, so currently we need to use
311 # Ubuntu 22.04 and the gcc-12 and g++12 packages.
312 runs-on: 'ubuntu-22.04'
314 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
317 - name: Install CCache
318 uses: hendrikmuhs/ccache-action@v1
320 key: ${{ github.job }}
321 - name: Fetch distribution
322 uses: actions/download-artifact@v3
323 - name: Unpack distribution
328 tar --strip-components=1 -xf xapian-core-*.tar.xz
330 pushd xapian-applications/omega
331 tar --strip-components=1 -xf xapian-omega-*.tar.xz
333 pushd xapian-bindings
334 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
337 tar --strip-components=1 -xf xapian-letor-*.tar.xz
339 - name: Install package dependencies
342 sudo apt-get install \
357 libpoppler-glib-dev \
367 libextractor-plugins-all \
369 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
374 export CC='ccache gcc-12'
375 export CXX='ccache g++-12'
376 # Ubuntu's GCC packages define _FORTIFY_SOURCE=2 by default, so we need
377 # to undefine it before we define it to avoid a warning (which becomes
378 # an error with -Werror).
379 export CPPFLAGS='-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3'
381 ./configure --enable-werror
382 export XAPIAN_CONFIG=$PWD/xapian-config
384 pushd xapian-applications/omega
385 ./configure --enable-werror
387 pushd xapian-bindings
388 ./configure --enable-werror
391 ./configure --enable-werror
395 make -j2 -C xapian-core
396 make -j2 -C xapian-applications/omega
397 make -j2 -C xapian-bindings
398 make -j2 -C xapian-letor
401 export AUTOMATED_TESTING=1
403 make -j2 -C xapian-core check
404 make -j2 -C xapian-applications/omega check
405 make -j2 -C xapian-bindings check
406 make -j2 -C xapian-letor check
409 runs-on: 'ubuntu-22.04'
411 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
414 - name: Install CCache
415 uses: hendrikmuhs/ccache-action@v1
417 key: ${{ github.job }}
418 - name: Fetch distribution
419 uses: actions/download-artifact@v3
420 - name: Unpack distribution
425 tar --strip-components=1 -xf xapian-core-*.tar.xz
427 pushd xapian-applications/omega
428 tar --strip-components=1 -xf xapian-omega-*.tar.xz
430 pushd xapian-bindings
431 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
434 tar --strip-components=1 -xf xapian-letor-*.tar.xz
436 - name: Install package dependencies
439 sudo apt-get install \
452 libpoppler-glib-dev \
462 libextractor-plugins-all \
464 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
469 export CC='ccache gcc'
470 export CXX='ccache g++'
472 ./configure --enable-werror --enable-assertions
473 export XAPIAN_CONFIG=$PWD/xapian-config
475 pushd xapian-applications/omega
476 ./configure --enable-werror
478 pushd xapian-bindings
479 ./configure --enable-werror
482 ./configure --enable-werror
486 make -j2 -C xapian-core
487 make -j2 -C xapian-applications/omega
488 make -j2 -C xapian-bindings
489 make -j2 -C xapian-letor
492 export AUTOMATED_TESTING=1
494 make -j2 -C xapian-core check
495 make -j2 -C xapian-applications/omega check
496 make -j2 -C xapian-bindings check
497 make -j2 -C xapian-letor check
500 runs-on: 'ubuntu-22.04'
502 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
505 - name: Install CCache
506 uses: hendrikmuhs/ccache-action@v1
508 key: ${{ github.job }}
509 - name: Fetch distribution
510 uses: actions/download-artifact@v3
511 - name: Unpack distribution
516 tar --strip-components=1 -xf xapian-core-*.tar.xz
518 pushd xapian-applications/omega
519 tar --strip-components=1 -xf xapian-omega-*.tar.xz
521 pushd xapian-bindings
522 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
525 tar --strip-components=1 -xf xapian-letor-*.tar.xz
527 - name: Install package dependencies
530 sudo apt-get install \
543 libpoppler-glib-dev \
553 libextractor-plugins-all \
555 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
560 export CC='ccache gcc'
561 export CXX='ccache g++'
563 ./configure --enable-werror --enable-log
564 export XAPIAN_CONFIG=$PWD/xapian-config
566 pushd xapian-applications/omega
567 ./configure --enable-werror
569 pushd xapian-bindings
570 ./configure --enable-werror
573 ./configure --enable-werror
577 make -j2 -C xapian-core
578 make -j2 -C xapian-applications/omega
579 make -j2 -C xapian-bindings
580 make -j2 -C xapian-letor
583 export AUTOMATED_TESTING=1
585 make -j2 -C xapian-core check
586 make -j2 -C xapian-applications/omega check
587 make -j2 -C xapian-bindings check
588 make -j2 -C xapian-letor check
591 runs-on: 'ubuntu-20.04'
593 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
596 - name: Install CCache
597 uses: hendrikmuhs/ccache-action@v1
599 key: ${{ github.job }}
600 - name: Fetch distribution
601 uses: actions/download-artifact@v3
602 - name: Unpack distribution
607 tar --strip-components=1 -xf xapian-core-*.tar.xz
609 pushd xapian-applications/omega
610 tar --strip-components=1 -xf xapian-omega-*.tar.xz
612 pushd xapian-bindings
613 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
616 tar --strip-components=1 -xf xapian-letor-*.tar.xz
618 - name: Install package dependencies
622 sudo apt-get install \
625 sudo apt-get install \
635 libpoppler-glib-dev \
648 # libreoffice support doesn't work when compiled with clang on Linux
651 export CC='ccache clang'
652 # Build with the llvm c++ library to catch more portability issues.
653 export CXX='ccache clang++ -stdlib=libc++'
655 ./configure --enable-werror
656 export XAPIAN_CONFIG=$PWD/xapian-config
658 pushd xapian-applications/omega
659 ./configure --enable-werror
661 pushd xapian-bindings
662 ./configure --enable-werror --with-python3 --with-tcl
665 ./configure --enable-werror
669 make -j2 -C xapian-core
670 make -j2 -C xapian-applications/omega
671 make -j2 -C xapian-bindings
672 make -j2 -C xapian-letor
675 export AUTOMATED_TESTING=1
677 make -j2 -C xapian-core check
678 make -j2 -C xapian-applications/omega check
679 make -j2 -C xapian-bindings check
680 make -j2 -C xapian-letor check
682 # Test with the oldest clang version we easily can.
684 runs-on: 'ubuntu-20.04'
686 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
689 - name: Install CCache
690 uses: hendrikmuhs/ccache-action@v1
692 key: ${{ github.job }}
693 - name: Fetch distribution
694 uses: actions/download-artifact@v3
695 - name: Unpack distribution
700 tar --strip-components=1 -xf xapian-core-*.tar.xz
702 pushd xapian-applications/omega
703 tar --strip-components=1 -xf xapian-omega-*.tar.xz
705 pushd xapian-bindings
706 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
709 tar --strip-components=1 -xf xapian-letor-*.tar.xz
711 - name: Install package dependencies
715 sudo apt-get install \
717 sudo apt-get install \
726 libpoppler-glib-dev \
739 # libreoffice support doesn't work when compiled with clang on Linux
742 export CC='ccache clang-6.0'
743 export CXX='ccache clang++-6.0'
745 ./configure --enable-werror
746 export XAPIAN_CONFIG=$PWD/xapian-config
748 pushd xapian-applications/omega
749 ./configure --enable-werror
751 pushd xapian-bindings
752 ./configure --enable-werror --with-python3 --with-tcl
755 ./configure --enable-werror
759 make -j2 -C xapian-core
760 make -j2 -C xapian-applications/omega
761 make -j2 -C xapian-bindings
762 make -j2 -C xapian-letor
765 export AUTOMATED_TESTING=1
767 make -j2 -C xapian-core check
768 make -j2 -C xapian-applications/omega check
769 make -j2 -C xapian-bindings check
770 make -j2 -C xapian-letor check
772 # GCC 7 is the oldest GCC we currently aim to support.
773 # Ubuntu 20.04 has GCC 7.5.0.
776 runs-on: 'ubuntu-20.04'
778 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
781 - name: Install CCache
782 uses: hendrikmuhs/ccache-action@v1
784 key: ${{ github.job }}
785 - name: Fetch distribution
786 uses: actions/download-artifact@v3
787 - name: Unpack distribution
792 tar --strip-components=1 -xf xapian-core-*.tar.xz
794 pushd xapian-applications/omega
795 tar --strip-components=1 -xf xapian-omega-*.tar.xz
797 pushd xapian-bindings
798 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
801 tar --strip-components=1 -xf xapian-letor-*.tar.xz
803 - name: Install package dependencies
806 sudo apt-get install \
809 sudo apt-get install \
820 libpoppler-glib-dev \
831 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
836 export CC='ccache gcc-7'
837 export CXX='ccache g++-7'
839 ./configure --enable-werror
840 export XAPIAN_CONFIG=$PWD/xapian-config
842 pushd xapian-applications/omega
843 ./configure --enable-werror
845 pushd xapian-bindings
846 ./configure --enable-werror
849 ./configure --enable-werror
853 make -j2 -C xapian-core
854 make -j2 -C xapian-applications/omega
855 make -j2 -C xapian-bindings
856 make -j2 -C xapian-letor
859 export AUTOMATED_TESTING=1
861 make -j2 -C xapian-core check
862 make -j2 -C xapian-applications/omega check
863 make -j2 -C xapian-bindings check
864 make -j2 -C xapian-letor check
867 runs-on: 'ubuntu-20.04'
870 EM_COMPILER_WRAPPER: ccache
872 - name: Install CCache
873 uses: hendrikmuhs/ccache-action@v1
875 key: ${{ github.job }}
876 - name: Fetch distribution
877 uses: actions/download-artifact@v3
878 - name: Unpack distribution
883 tar --strip-components=1 -xf xapian-core-*.tar.xz
886 uses: mymindstorm/setup-emsdk@v12
889 # This is the name of the cache folder.
890 # The cache folder will be placed in the build directory,
891 # so make sure it doesn't conflict with anything!
892 actions-cache-folder: 'emsdk-cache'
894 uses: actions/setup-node@v3
898 export CPPFLAGS='-DFLINTLOCK_USE_FLOCK'
899 export CXXFLAGS='-Oz -s USE_ZLIB=1 -fno-rtti'
900 emconfigure ./configure --enable-werror --disable-shared
908 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
913 runs-on: 'ubuntu-latest'
914 container: debian:stable
916 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
919 - name: Install package dependencies
936 libpoppler-glib-dev \
947 libreofficekit-dev libreoffice-calc libreoffice-draw libreoffice-impress libreoffice-writer \
950 - name: Install CCache
951 uses: hendrikmuhs/ccache-action@v1
953 key: ${{ github.job }}
954 - name: Fetch distribution
955 uses: actions/download-artifact@v3
956 - name: Unpack distribution
961 tar --strip-components=1 -xf xapian-core-*.tar.xz
963 pushd xapian-applications/omega
964 tar --strip-components=1 -xf xapian-omega-*.tar.xz
966 pushd xapian-bindings
967 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
970 tar --strip-components=1 -xf xapian-letor-*.tar.xz
974 export CC='ccache gcc'
975 export CXX='ccache g++'
977 ./configure --enable-werror
978 export XAPIAN_CONFIG=$PWD/xapian-config
980 pushd xapian-applications/omega
981 ./configure --enable-werror
983 pushd xapian-bindings
984 ./configure --enable-werror
987 ./configure --enable-werror
991 make -j2 -C xapian-core
992 make -j2 -C xapian-applications/omega
993 make -j2 -C xapian-bindings
994 make -j2 -C xapian-letor
997 export AUTOMATED_TESTING=1
999 make -j2 -C xapian-core check
1000 make -j2 -C xapian-applications/omega check
1001 make -j2 -C xapian-bindings check
1002 make -j2 -C xapian-letor check
1005 runs-on: 'macos-latest'
1007 LIBEXTRACTOR_PREFIX: '/usr/local/lib/libextractor'
1010 - name: Install CCache
1011 uses: hendrikmuhs/ccache-action@v1
1013 key: ${{ github.job }}
1014 - name: Fetch distribution
1015 uses: actions/download-artifact@v3
1016 - name: Unpack distribution
1021 tar --strip-components=1 -xf xapian-core-*.tar.xz
1023 pushd xapian-applications/omega
1024 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1026 pushd xapian-bindings
1027 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1030 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1032 - name: Install package dependencies
1034 # Workaround apparent homebrew bug 2023-01-18
1035 rm -f /usr/local/bin/2to3-3.11 /usr/local/bin/idle3.11 /usr/local/bin/pydoc3.11 /usr/local/bin/python3.11 /usr/local/bin/python3.11-config
1036 rm -f /usr/local/bin/2to3 /usr/local/bin/idle3 /usr/local/bin/pydoc3 /usr/local/bin/python3 /usr/local/bin/python3-config
1058 # homebrew tesseract 5.2.0 only extracts "ee" from img/Test1.gif (5.1.0
1063 export CC='ccache gcc'
1064 export CXX='ccache g++'
1065 # Workaround for https://github.com/Homebrew/homebrew-core/issues/136873
1066 export EATMYDATA=$(brew --prefix libeatmydata)/bin/eatmydata
1067 export PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig
1069 ./configure --enable-werror --prefix='${{ runner.temp }}/XapianInstall'
1070 export XAPIAN_CONFIG=$PWD/xapian-config
1072 pushd xapian-applications/omega
1073 ./configure --enable-werror --with-libiconv-prefix=/usr/local/opt/libiconv
1075 pushd xapian-bindings
1076 ./configure --enable-werror
1079 ./configure --enable-werror
1083 make -j3 -C xapian-core
1084 make -j3 -C xapian-core install
1085 make -j3 -C xapian-applications/omega
1086 make -j3 -C xapian-bindings
1087 make -j3 -C xapian-letor
1090 export AUTOMATED_TESTING=1
1092 make -j3 -C xapian-core check
1093 make -j3 -C xapian-applications/omega check
1094 make -j3 -C xapian-bindings check
1095 make -j3 -C xapian-letor check
1098 runs-on: 'ubuntu-22.04'
1101 - name: Install CCache
1102 uses: hendrikmuhs/ccache-action@v1
1104 key: ${{ github.job }}
1105 - name: Fetch distribution
1106 uses: actions/download-artifact@v3
1107 - name: Unpack distribution
1112 tar --strip-components=1 -xf xapian-core-*.tar.xz
1115 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1117 - name: Install package dependencies
1120 sudo apt-get install \
1121 g++-mingw-w64-i686-win32 \
1122 mingw-w64-i686-dev \
1123 binutils-mingw-w64-i686 \
1124 libz-mingw-w64-dev \
1129 export PATH=/usr/lib/ccache:$PATH
1131 ./configure --enable-werror --host i686-w64-mingw32
1132 export XAPIAN_CONFIG=$PWD/xapian-config
1135 ./configure --enable-werror --host i686-w64-mingw32
1139 export PATH=/usr/lib/ccache:$PATH
1140 make -j2 -C xapian-core
1141 make -j2 -C xapian-letor
1144 # Stop mono binfmt trying to run .exe files.
1145 sudo apt-get purge mono-runtime
1146 sudo dpkg --add-architecture i386
1148 sudo apt-get install wine32 wine-binfmt:amd64 wine:amd64
1149 export AUTOMATED_TESTING=1
1151 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/ .*//'`"
1152 make -j2 -C xapian-core check
1153 export WINEPATH="$PWD/xapian-letor/.libs;$WINEPATH"
1154 make -j2 -C xapian-letor check
1156 mingw64-x86-64-cross:
1157 runs-on: 'ubuntu-22.04'
1160 - name: Install CCache
1161 uses: hendrikmuhs/ccache-action@v1
1163 key: ${{ github.job }}
1164 - name: Fetch distribution
1165 uses: actions/download-artifact@v3
1166 - name: Unpack distribution
1171 tar --strip-components=1 -xf xapian-core-*.tar.xz
1172 export XAPIAN_CONFIG=$PWD/xapian-config
1175 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1177 - name: Install package dependencies
1180 # Stop mono binfmt trying to run .exe files.
1181 sudo apt-get purge mono-runtime
1182 sudo apt-get install \
1183 g++-mingw-w64-x86-64-win32 \
1184 mingw-w64-x86-64-dev \
1185 binutils-mingw-w64-x86-64 \
1186 libz-mingw-w64-dev \
1191 sudo dpkg --add-architecture i386
1193 sudo apt-get install wine32
1197 export PATH=/usr/lib/ccache:$PATH
1199 ./configure --enable-werror --host x86_64-w64-mingw32
1200 export XAPIAN_CONFIG=$PWD/xapian-config
1203 ./configure --enable-werror --host x86_64-w64-mingw32
1207 export PATH=/usr/lib/ccache:$PATH
1208 make -j2 -C xapian-core
1209 make -j2 -C xapian-letor
1212 export AUTOMATED_TESTING=1
1214 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/ .*//'`"
1215 make -j2 -C xapian-core check
1216 export WINEPATH="$PWD/xapian-letor/.libs;$WINEPATH"
1217 make -j2 -C xapian-letor check
1220 runs-on: 'ubuntu-22.04'
1221 container: fedora:35
1224 - name: Install build tools
1225 run: dnf install -y --nodocs ccache xz
1226 - name: Install CCache
1227 uses: hendrikmuhs/ccache-action@v1
1229 key: ${{ github.job }}
1230 - name: Fetch distribution
1231 uses: actions/download-artifact@v3
1232 - name: Unpack distribution
1237 tar --strip-components=1 -xf xapian-core-*.tar.xz
1239 pushd xapian-applications/omega
1240 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1242 pushd xapian-bindings
1243 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1246 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1248 - name: Install package dependencies
1250 dnf install -y --nodocs \
1251 gcc-c++ file-devel libuuid-devel pcre2-devel perl zlib-devel make pkg-config \
1252 python3-devel python3-setuptools python3-sphinx \
1253 ruby ruby-devel rubygems rubygem-rdoc rubygem-json rubygem-test-unit \
1257 export CC='ccache gcc'
1258 export CXX='ccache g++'
1260 ./configure --enable-werror
1261 export XAPIAN_CONFIG=$PWD/xapian-config
1263 pushd xapian-applications/omega
1264 ./configure --enable-werror
1266 pushd xapian-bindings
1267 ./configure --enable-werror
1270 ./configure --enable-werror
1274 make -j2 -C xapian-core
1275 make -j2 -C xapian-applications/omega
1276 make -j2 -C xapian-bindings
1277 make -j2 -C xapian-letor
1280 export AUTOMATED_TESTING=1
1282 make -j2 -C xapian-core check
1283 make -j2 -C xapian-applications/omega check
1284 make -j2 -C xapian-bindings check
1285 make -j2 -C xapian-letor check
1288 runs-on: 'ubuntu-22.04'
1290 NDK: '/usr/local/lib/android/sdk/ndk/25.2.9519653'
1291 # NDK: '/home/runner/ndk'
1292 host_triplet: 'armv7a-linux-androideabi33'
1295 - name: Install CCache
1296 uses: hendrikmuhs/ccache-action@v1
1298 key: ${{ github.job }}
1299 - name: Fetch distribution
1300 uses: actions/download-artifact@v3
1301 - name: Unpack distribution
1306 tar --strip-components=1 -xf xapian-core-*.tar.xz
1310 PATH=$PATH:$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin
1312 ./configure --enable-werror \
1313 --host=$host_triplet \
1314 CC="ccache ${host_triplet}-clang" \
1315 CXX="ccache ${host_triplet}-clang++" \
1316 PKG_CONFIG=/bin/false
1319 PATH=$PATH:$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin
1320 make -j2 -C xapian-core
1321 # FIXME: Run tests under android emulator?
1324 # We only test 64-bit cygwin as 32-bit support has been dropped as of
1326 # https://cygwin.com/pipermail/cygwin/2022-November/252542.html
1327 runs-on: 'windows-latest'
1331 # `-o incr` needed as GHA supplies shell fragments with DOS EOLs.
1332 shell: 'C:\tools\cygwin\bin\bash.EXE --noprofile --norc -e -o igncr -o pipefail {0}'
1334 - name: Install Cygwin
1335 uses: egor-tensin/setup-cygwin@v4
1337 packages: gcc-g++ make file-devel libpcre2-devel zlib-devel perl
1338 - name: Install CCache
1339 uses: hendrikmuhs/ccache-action@v1
1341 key: ${{ github.job }}
1342 - name: Fetch distribution
1343 uses: actions/download-artifact@v3
1344 - name: Unpack distribution
1349 tar --strip-components=1 -xf xapian-core-*.tar.xz
1351 pushd xapian-applications/omega
1352 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1354 pushd xapian-bindings
1355 tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1358 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1362 export CC='ccache gcc'
1363 export CXX='ccache g++'
1365 ./configure --enable-werror
1366 export XAPIAN_CONFIG=$PWD/xapian-config
1368 pushd xapian-applications/omega
1369 ./configure --enable-werror
1371 # pushd xapian-bindings
1372 # ./configure --enable-werror
1375 ./configure --enable-werror
1379 make -j2 -C xapian-core
1380 make -j2 -C xapian-applications/omega
1381 # make -j2 -C xapian-bindings
1382 make -j2 -C xapian-letor
1385 export AUTOMATED_TESTING=1
1387 make -j2 -C xapian-core check
1388 make -j2 -C xapian-applications/omega check
1389 # make -j2 -C xapian-bindings check
1390 make -j2 -C xapian-letor check
1393 runs-on: 'windows-latest'
1399 - uses: msys2/setup-msys2@v2
1408 - name: Install CCache
1409 uses: hendrikmuhs/ccache-action@v1
1411 key: ${{ github.job }}
1413 - name: Fetch distribution
1414 uses: actions/download-artifact@v3
1415 - name: Unpack distribution
1420 tar --strip-components=1 -xf xapian-core-*.tar.xz
1422 pushd xapian-applications/omega
1423 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1425 # pushd xapian-bindings
1426 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1429 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1433 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1434 export CC='sccache gcc'
1435 export CXX='sccache g++'
1437 ./configure --enable-werror
1438 export XAPIAN_CONFIG=$PWD/xapian-config
1440 pushd xapian-applications/omega
1441 ./configure --enable-werror
1443 # pushd xapian-bindings
1444 # ./configure --enable-werror
1447 ./configure --enable-werror
1451 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1452 make -j2 -C xapian-core
1453 make -j2 -C xapian-applications/omega
1454 # make -j2 -C xapian-bindings
1455 make -j2 -C xapian-letor
1458 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1459 export AUTOMATED_TESTING=1
1461 make -j2 -C xapian-core check
1462 make -j2 -C xapian-applications/omega check
1463 # make -j2 -C xapian-bindings check
1464 make -j2 -C xapian-letor check
1467 runs-on: 'windows-latest'
1473 - uses: msys2/setup-msys2@v2
1482 - name: Install CCache
1483 uses: hendrikmuhs/ccache-action@v1
1485 key: ${{ github.job }}
1487 - name: Fetch distribution
1488 uses: actions/download-artifact@v3
1489 - name: Unpack distribution
1494 tar --strip-components=1 -xf xapian-core-*.tar.xz
1496 pushd xapian-applications/omega
1497 tar --strip-components=1 -xf xapian-omega-*.tar.xz
1499 # pushd xapian-bindings
1500 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1503 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1507 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1508 export CC='sccache gcc'
1509 export CXX='sccache g++'
1511 ./configure --enable-werror
1512 export XAPIAN_CONFIG=$PWD/xapian-config
1514 pushd xapian-applications/omega
1515 ./configure --enable-werror
1517 # pushd xapian-bindings
1518 # ./configure --enable-werror
1521 ./configure --enable-werror
1525 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1526 make -j2 -C xapian-core
1527 make -j2 -C xapian-applications/omega
1528 # make -j2 -C xapian-bindings
1529 make -j2 -C xapian-letor
1532 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1533 export AUTOMATED_TESTING=1
1535 make -j2 -C xapian-core check
1536 make -j2 -C xapian-applications/omega check
1537 # make -j2 -C xapian-bindings check
1538 make -j2 -C xapian-letor check
1541 runs-on: 'windows-latest'
1547 - uses: msys2/setup-msys2@v2
1554 - name: Install CCache
1555 uses: hendrikmuhs/ccache-action@v1
1557 key: ${{ github.job }}
1559 - name: Fetch distribution
1560 uses: actions/download-artifact@v3
1561 - name: Unpack distribution
1566 tar --strip-components=1 -xf xapian-core-*.tar.xz
1568 # pushd xapian-applications/omega
1569 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1571 # pushd xapian-bindings
1572 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1575 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1579 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1580 export CC='sccache gcc'
1581 export CXX='sccache g++'
1583 ./configure --enable-werror
1584 export XAPIAN_CONFIG=$PWD/xapian-config
1586 # FIXME: Fails to find magic.h for some reason even though it is
1587 # installed via file:p above.
1588 # pushd xapian-applications/omega
1589 # ./configure --enable-werror
1591 # pushd xapian-bindings
1592 # ./configure --enable-werror
1595 ./configure --enable-werror
1599 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1600 make -j2 -C xapian-core
1601 # make -j2 -C xapian-applications/omega
1602 # make -j2 -C xapian-bindings
1603 make -j2 -C xapian-letor
1606 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1607 export AUTOMATED_TESTING=1
1609 make -j2 -C xapian-core check
1610 # make -j2 -C xapian-applications/omega check
1611 # make -j2 -C xapian-bindings check
1612 make -j2 -C xapian-letor check
1615 runs-on: 'windows-2019'
1621 - uses: msys2/setup-msys2@v2
1623 release: true # Use the pre-installed MSYS2
1626 - name: Install CCache
1627 uses: hendrikmuhs/ccache-action@v1
1629 key: ${{ github.job }}
1631 - name: Fetch distribution
1632 uses: actions/download-artifact@v3
1633 - name: Unpack distribution
1638 tar --strip-components=1 -xf xapian-core-*.tar.xz
1640 # Need libmagic for omega
1641 # pushd xapian-applications/omega
1642 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1644 # pushd xapian-bindings
1645 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1648 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1650 - name: Set up Visual Studio shell
1651 uses: egor-tensin/vs-shell@v2
1657 # Setup sccache for cl.
1658 ln /c/Users/runneradmin/.cargo/bin/{sccache.exe,cl.exe}
1659 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1660 # We find "link" from coreutils rather than from MSVC. The coreutils
1661 # "link" is not a useful tool to us, so just delete it rather than
1662 # trying to reorder PATH.
1663 rm /usr/bin/link.exe || true
1666 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 -
1667 # Don't build zlib with -MD as it seems this flag needs to be used
1668 # consistently across the build. Don't use -Zi -Fd"zlib" as
1669 # ccache/sccache don't seem to be able to handle that.
1671 # Don't build zlib with a fixed base address on x64 as that gives
1672 # linker warning LNK4281.
1673 sed -i 's/\(^CFLAGS *= *-nologo \)-MD \(.* \)-Zi -Fd"zlib" /\1\2/;s/-base:0x[0-9A-Fa-f]* //' win32/Makefile.msc
1674 # Only build the shared library.
1675 nmake -nologo -f 'win32\Makefile.msc' zlib1.dll
1680 export CC="cl -nologo"
1681 export CXX="$PWD/xapian-core/compile cl -nologo"
1682 export CPPFLAGS="-I$PWD/zlib"
1683 # Standard C++ stack unwinding; assume extern "C" functions never throw.
1684 export CXXFLAGS=-EHsc
1685 export LDFLAGS="-L$PWD/zlib"
1686 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1688 ./configure --enable-werror --disable-shared
1689 export XAPIAN_CONFIG=$PWD/xapian-config
1691 # pushd xapian-applications/omega
1692 # ./configure --enable-werror
1694 # pushd xapian-bindings
1695 # ./configure --enable-werror
1698 ./configure --enable-werror --disable-shared
1702 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1703 make -j2 -C xapian-core
1704 # make -j2 -C xapian-applications/omega
1705 # make -j2 -C xapian-binding
1706 make -j2 -C xapian-letor
1709 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1710 export AUTOMATED_TESTING=1
1712 make -j2 -C xapian-core check
1713 # make -j2 -C xapian-applications/omega check
1714 # make -j2 -C xapian-bindings check
1715 make -j2 -C xapian-letor check
1718 runs-on: 'windows-2022'
1724 - uses: msys2/setup-msys2@v2
1726 release: true # Use the pre-installed MSYS2
1729 - name: Install CCache
1730 uses: hendrikmuhs/ccache-action@v1
1732 key: ${{ github.job }}
1734 - name: Fetch distribution
1735 uses: actions/download-artifact@v3
1736 - name: Unpack distribution
1741 tar --strip-components=1 -xf xapian-core-*.tar.xz
1743 # Need libmagic for omega
1744 # pushd xapian-applications/omega
1745 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1747 # pushd xapian-bindings
1748 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1751 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1753 - name: Set up Visual Studio shell
1754 uses: egor-tensin/vs-shell@v2
1760 # Setup sccache for cl.
1761 ln /c/Users/runneradmin/.cargo/bin/{sccache.exe,cl.exe}
1762 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1763 # We find "link" from coreutils rather than from MSVC. The coreutils
1764 # "link" is not a useful tool to us, so just delete it rather than
1765 # trying to reorder PATH.
1766 rm /usr/bin/link.exe || true
1769 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 -
1770 # Don't build zlib with -MD as it seems this flag needs to be used
1771 # consistently across the build. Don't use -Zi -Fd"zlib" as
1772 # ccache/sccache don't seem to be able to handle that.
1774 # Don't build zlib with a fixed base address on x64 as that gives
1775 # linker warning LNK4281.
1776 sed -i 's/\(^CFLAGS *= *-nologo \)-MD \(.* \)-Zi -Fd"zlib" /\1\2/;s/-base:0x[0-9A-Fa-f]* //' win32/Makefile.msc
1777 # Only build the shared library.
1778 nmake -nologo -f 'win32\Makefile.msc' zlib1.dll
1783 export CC="cl -nologo"
1784 export CXX="$PWD/xapian-core/compile cl -nologo"
1785 export CPPFLAGS="-I$PWD/zlib"
1786 # Standard C++ stack unwinding; assume extern "C" functions never throw.
1787 export CXXFLAGS=-EHsc
1788 export LDFLAGS="-L$PWD/zlib"
1789 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1791 ./configure --enable-werror --disable-shared
1792 export XAPIAN_CONFIG=$PWD/xapian-config
1794 # pushd xapian-applications/omega
1795 # ./configure --enable-werror
1797 # pushd xapian-bindings
1798 # ./configure --enable-werror
1801 ./configure --enable-werror --disable-shared
1805 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1806 make -j2 -C xapian-core
1807 # make -j2 -C xapian-applications/omega
1808 # make -j2 -C xapian-binding
1809 make -j2 -C xapian-letor
1812 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1813 export AUTOMATED_TESTING=1
1815 make -j2 -C xapian-core check
1816 # make -j2 -C xapian-applications/omega check
1817 # make -j2 -C xapian-bindings check
1818 make -j2 -C xapian-letor check
1821 runs-on: 'windows-2019'
1827 - uses: msys2/setup-msys2@v2
1829 release: true # Use the pre-installed MSYS2
1832 - name: Install CCache
1833 uses: hendrikmuhs/ccache-action@v1
1835 key: ${{ github.job }}
1837 - name: Fetch distribution
1838 uses: actions/download-artifact@v3
1839 - name: Unpack distribution
1844 tar --strip-components=1 -xf xapian-core-*.tar.xz
1846 # Need libmagic for omega
1847 # pushd xapian-applications/omega
1848 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1850 # pushd xapian-bindings
1851 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1854 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1856 - name: Set up Visual Studio shell
1857 uses: egor-tensin/vs-shell@v2
1863 # Setup sccache for cl.
1864 ln /c/Users/runneradmin/.cargo/bin/{sccache.exe,cl.exe}
1865 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1866 # We find "link" from coreutils rather than from MSVC. The coreutils
1867 # "link" is not a useful tool to us, so just delete it rather than
1868 # trying to reorder PATH.
1869 rm /usr/bin/link.exe || true
1872 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 -
1873 # Don't build zlib with -MD as it seems this flag needs to be used
1874 # consistently across the build. Don't use -Zi -Fd"zlib" as
1875 # ccache/sccache don't seem to be able to handle that.
1876 sed -i 's/\(^CFLAGS *= *-nologo \)-MD \(.* \)-Zi -Fd"zlib" /\1\2/' win32/Makefile.msc
1877 # Only build the static library.
1878 nmake -nologo -f 'win32\Makefile.msc' zlib.lib
1883 export CC="cl -nologo"
1884 export CXX="$PWD/xapian-core/compile cl -nologo"
1885 export CPPFLAGS="-I$PWD/zlib"
1886 # Standard C++ stack unwinding; assume extern "C" functions never throw.
1887 export CXXFLAGS=-EHsc
1888 export LDFLAGS="-L$PWD/zlib"
1889 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1891 ./configure --enable-werror --disable-shared
1892 export XAPIAN_CONFIG=$PWD/xapian-config
1894 # pushd xapian-applications/omega
1895 # ./configure --enable-werror
1897 # pushd xapian-bindings
1898 # ./configure --enable-werror
1901 ./configure --enable-werror --disable-shared
1905 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1906 make -j2 -C xapian-core
1907 # make -j2 -C xapian-applications/omega
1908 # make -j2 -C xapian-binding
1909 make -j2 -C xapian-letor
1912 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1913 export AUTOMATED_TESTING=1
1915 make -j2 -C xapian-core check
1916 # make -j2 -C xapian-applications/omega check
1917 # make -j2 -C xapian-bindings check
1918 make -j2 -C xapian-letor check
1921 runs-on: 'windows-2022'
1927 - uses: msys2/setup-msys2@v2
1929 release: true # Use the pre-installed MSYS2
1932 - name: Install CCache
1933 uses: hendrikmuhs/ccache-action@v1
1935 key: ${{ github.job }}
1937 - name: Fetch distribution
1938 uses: actions/download-artifact@v3
1939 - name: Unpack distribution
1944 tar --strip-components=1 -xf xapian-core-*.tar.xz
1946 # Need libmagic for omega
1947 # pushd xapian-applications/omega
1948 # tar --strip-components=1 -xf xapian-omega-*.tar.xz
1950 # pushd xapian-bindings
1951 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
1954 tar --strip-components=1 -xf xapian-letor-*.tar.xz
1956 - name: Set up Visual Studio shell
1957 uses: egor-tensin/vs-shell@v2
1963 # Setup sccache for cl.
1964 ln /c/Users/runneradmin/.cargo/bin/{sccache.exe,cl.exe}
1965 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1966 # We find "link" from coreutils rather than from MSVC. The coreutils
1967 # "link" is not a useful tool to us, so just delete it rather than
1968 # trying to reorder PATH.
1969 rm /usr/bin/link.exe || true
1972 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 -
1973 # Don't build zlib with -MD as it seems this flag needs to be used
1974 # consistently across the build. Don't use -Zi -Fd"zlib" as
1975 # ccache/sccache don't seem to be able to handle that.
1976 sed -i 's/\(^CFLAGS *= *-nologo \)-MD \(.* \)-Zi -Fd"zlib" /\1\2/' win32/Makefile.msc
1977 # Only build the static library.
1978 nmake -nologo -f 'win32\Makefile.msc' zlib.lib
1983 export CC="cl -nologo"
1984 export CXX="$PWD/xapian-core/compile cl -nologo"
1985 export CPPFLAGS="-I$PWD/zlib"
1986 # Standard C++ stack unwinding; assume extern "C" functions never throw.
1987 export CXXFLAGS=-EHsc
1988 export LDFLAGS="-L$PWD/zlib"
1989 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
1991 ./configure --enable-werror --disable-shared
1992 export XAPIAN_CONFIG=$PWD/xapian-config
1994 # pushd xapian-applications/omega
1995 # ./configure --enable-werror
1997 # pushd xapian-bindings
1998 # ./configure --enable-werror
2001 ./configure --enable-werror --disable-shared
2005 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
2006 make -j2 -C xapian-core
2007 # make -j2 -C xapian-applications/omega
2008 # make -j2 -C xapian-binding
2009 make -j2 -C xapian-letor
2012 PATH=/c/Users/runneradmin/.cargo/bin:$PATH
2013 export AUTOMATED_TESTING=1
2015 make -j2 -C xapian-core check
2016 # make -j2 -C xapian-applications/omega check
2017 # make -j2 -C xapian-bindings check
2018 make -j2 -C xapian-letor check
2024 - name: Install CCache
2025 uses: hendrikmuhs/ccache-action@v1
2027 key: ${{ github.job }}
2028 - name: Fetch distribution
2029 uses: actions/download-artifact@v3
2030 - name: Unpack distribution
2034 # Do actual unpacking on freebsd, mostly to help reduce the size of the
2035 # rsync output in the logs.
2036 - name: Run in FreeBSD VM
2037 uses: vmactions/freebsd-vm@v0
2038 # Reduce impact of https://github.com/vmactions/freebsd-vm/issues/74
2044 pkg install -y bash ccache perl5 pcre2
2045 ccache --set-config=cache_dir='/Users/runner/work/xapian/xapian/.ccache'
2046 ccache --set-config=max_size='500M'
2047 ccache --set-config=compression=true
2050 export CC='ccache cc'
2051 export CXX='ccache c++'
2053 tar --strip-components=1 -xf xapian-core-*.tar.xz
2054 ./configure --enable-werror
2055 export XAPIAN_CONFIG=$PWD/xapian-config
2057 cd xapian-applications/omega
2058 tar --strip-components=1 -xf xapian-omega-*.tar.xz
2059 ./configure --enable-werror
2061 # cd xapian-bindings
2062 # tar --strip-components=1 -xf xapian-bindings-*.tar.xz
2065 tar --strip-components=1 -xf xapian-letor-*.tar.xz
2066 ./configure --enable-werror
2068 # Everything gets run in on script so use V=0 to reduce the size of
2069 # the log, but re-run without V=0 on failure to show the compiler
2071 make -j2 -C xapian-core V=0 || make -C xapian-core
2072 make -j2 -C xapian-applications/omega V=0 || make -C xapian-core
2073 make -j2 -C xapian-letor V=0 || make -C xapian-letor
2074 export AUTOMATED_TESTING=1
2076 make -j2 -C xapian-core check V=0
2077 make -j2 -C xapian-applications/omega check V=0
2078 make -j2 -C xapian-letor check V=0
2081 name: 'Automated run of xapian-check-patch'
2082 runs-on: 'ubuntu-latest'
2084 - name: Check out repository code
2085 uses: actions/checkout@v3
2088 - name: "Automated run of xapian-check-patch"
2089 # Run the style checking script, checking changes between the common
2090 # ancestor of the target branch of the PR (or master if this isn't a PR)
2091 # and the revision being checked.
2093 echo "GITHUB_BASE_REF='$GITHUB_BASE_REF'"
2094 git diff ${GITHUB_BASE_REF:-origin/master}.. --|xapian-maintainer-tools/xapian-check-patch