8 - 'xapian-maintainer-tools/**'
14 - 'xapian-maintainer-tools/**'
16 # Allows you to run this workflow manually from the Actions tab
21 runs-on: 'ubuntu-20.04'
23 - name: Check out repository code
24 uses: actions/checkout@v2
25 - name: Install CCache
26 uses: hendrikmuhs/ccache-action@v1
29 - name: Install package dependencies
32 sudo apt-get install \
49 - name: bootstrap source tree
50 run: ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
52 run: ./configure CC='ccache gcc' CXX='ccache g++' CPPFLAGS='-D_GLIBCXX_DEBUG'
56 run: make -j2 check VERBOSE=1 AUTOMATED_TESTING=1
57 - name: Check generated files are in .gitignore
58 # grep '^' passes through all input while giving a non-zero exit status
59 # if that input is empty.
60 run: git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
63 # _FORTIFY_SOURCE level 3 requires GCC 12, so currently we need to use
64 # Ubuntu 22.04 and the gcc-12 and g++12 packages.
65 runs-on: 'ubuntu-22.04'
67 - name: Check out repository code
68 uses: actions/checkout@v2
69 - name: Install CCache
70 uses: hendrikmuhs/ccache-action@v1
73 - name: Install package dependencies
76 sudo apt-get install \
94 - name: bootstrap source tree
95 run: ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
97 # Ubuntu's GCC packages define _FORTIFY_SOURCE=2 by default, so we need
98 # to undefine it before we define it to avoid a warning (which becomes
99 # an error with -Werror).
100 run: ./configure CC='ccache gcc-12' CXX='ccache g++-12' CPPFLAGS='-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3'
104 run: make -j2 check VERBOSE=1 AUTOMATED_TESTING=1
105 - name: Check generated files are in .gitignore
106 # grep '^' passes through all input while giving a non-zero exit status
107 # if that input is empty.
108 run: git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
111 runs-on: 'ubuntu-20.04'
113 - name: Check out repository code
114 uses: actions/checkout@v2
115 - name: Install CCache
116 uses: hendrikmuhs/ccache-action@v1
119 - name: Install package dependencies
123 sudo apt-get install \
126 sudo apt-get install \
138 - name: bootstrap source tree
139 run: ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
141 # Build with the llvm c++ library to catch more portability issues.
142 run: ./configure CC='ccache clang' CXX='ccache clang++ -stdlib=libc++' --with-python3 --with-tcl
146 run: make -j2 check VERBOSE=1 AUTOMATED_TESTING=1
147 - name: Check generated files are in .gitignore
148 # grep '^' passes through all input while giving a non-zero exit status
149 # if that input is empty.
150 run: git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
152 # GCC 4.7 is the oldest GCC we aim to support for 1.4.x, but the oldest we can
153 # easily build with in github actions is 4.8. There's no package of GCC 4.8
154 # in Ubuntu 20.04 so we have to run this on 18.04 (also useful to test
155 # there for portability).
158 runs-on: 'ubuntu-18.04'
160 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
162 - name: Check out repository code
163 uses: actions/checkout@v2
164 - name: Install CCache
165 uses: hendrikmuhs/ccache-action@v1
168 - name: Install package dependencies
171 sudo apt-get install \
174 sudo apt-get install \
190 - name: bootstrap source tree
191 run: ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
193 run: ./configure CC='ccache gcc-4.8' CXX='ccache g++-4.8'
197 run: make -j2 check VERBOSE=1 AUTOMATED_TESTING=1
198 - name: Check generated files are in .gitignore
199 # grep '^' passes through all input while giving a non-zero exit status
200 # if that input is empty.
201 run: git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
204 runs-on: 'macos-latest'
206 - name: Check out repository code
207 uses: actions/checkout@v2
208 - name: Install CCache
209 uses: hendrikmuhs/ccache-action@v1
212 - name: Install package dependencies
228 pip3 install sphinx docutils
229 - name: bootstrap source tree
230 run: ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
232 run: ./configure CC='ccache gcc' CXX='ccache g++' CPPFLAGS='-I${{ runner.temp }}/xapian-libsvm-fixed-include' PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig --prefix='${{ runner.temp }}/XapianInstall' --with-libiconv-prefix=/usr/local/opt/libiconv
236 make -C xapian-core install
238 run: make -j2 check VERBOSE=1 AUTOMATED_TESTING=1
239 - name: Check generated files are in .gitignore
240 # grep '^' passes through all input while giving a non-zero exit status
241 # if that input is empty.
243 find . \( -name 'config.guess~' -o -name 'config.sub~' -o -name 'install-sh~' \) -delete
244 git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
247 name: 'Automated run of xapian-check-patch'
248 runs-on: 'ubuntu-latest'
250 - name: Check out repository code
251 uses: actions/checkout@v2
254 - name: "Automated run of xapian-check-patch"
255 # Run the style checking script, checking changes between the common
256 # ancestor of the target branch of the PR (or master if this isn't a PR)
257 # and the revision being checked.
259 echo "GITHUB_BASE_REF='$GITHUB_BASE_REF'"
260 git diff ${GITHUB_BASE_REF:-origin/RELEASE/1.4}.. --|xapian-maintainer-tools/xapian-check-patch