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 run: ./configure CC='ccache gcc-12' CXX='ccache g++-12' CPPFLAGS='-D_FORTIFY_SOURCE=3'
101 run: make -j2 check VERBOSE=1 AUTOMATED_TESTING=1
102 - name: Check generated files are in .gitignore
103 # grep '^' passes through all input while giving a non-zero exit status
104 # if that input is empty.
105 run: git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
108 runs-on: 'ubuntu-20.04'
110 - name: Check out repository code
111 uses: actions/checkout@v2
112 - name: Install CCache
113 uses: hendrikmuhs/ccache-action@v1
116 - name: Install package dependencies
120 sudo apt-get install \
123 sudo apt-get install \
135 - name: bootstrap source tree
136 run: ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
138 # Build with the llvm c++ library to catch more portability issues.
139 run: ./configure CC='ccache clang' CXX='ccache clang++ -stdlib=libc++' --with-python3 --with-tcl
143 run: make -j2 check VERBOSE=1 AUTOMATED_TESTING=1
144 - name: Check generated files are in .gitignore
145 # grep '^' passes through all input while giving a non-zero exit status
146 # if that input is empty.
147 run: git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
149 # GCC 4.7 is the oldest GCC we aim to support for 1.4.x, but the oldest we can
150 # easily build with in github actions is 4.8. There's no package of GCC 4.8
151 # in Ubuntu 20.04 so we have to run this on 18.04 (also useful to test
152 # there for portability).
155 runs-on: 'ubuntu-18.04'
157 LIBEXTRACTOR_PREFIX: '/usr/lib/x86_64-linux-gnu/libextractor'
159 - name: Check out repository code
160 uses: actions/checkout@v2
161 - name: Install CCache
162 uses: hendrikmuhs/ccache-action@v1
165 - name: Install package dependencies
168 sudo apt-get install \
171 sudo apt-get install \
187 - name: bootstrap source tree
188 run: ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
190 run: ./configure CC='ccache gcc-4.8' CXX='ccache g++-4.8'
194 run: make -j2 check VERBOSE=1 AUTOMATED_TESTING=1
195 - name: Check generated files are in .gitignore
196 # grep '^' passes through all input while giving a non-zero exit status
197 # if that input is empty.
198 run: git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
201 runs-on: 'macos-latest'
203 - name: Check out repository code
204 uses: actions/checkout@v2
205 - name: Install CCache
206 uses: hendrikmuhs/ccache-action@v1
209 - name: Install package dependencies
225 pip3 install sphinx docutils
226 - name: bootstrap source tree
227 run: ./bootstrap xapian-core xapian-applications/omega swig xapian-bindings xapian-letor
229 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
233 make -C xapian-core install
235 run: make -j2 check VERBOSE=1 AUTOMATED_TESTING=1
236 - name: Check generated files are in .gitignore
237 # grep '^' passes through all input while giving a non-zero exit status
238 # if that input is empty.
240 find . \( -name 'config.guess~' -o -name 'config.sub~' -o -name 'install-sh~' \) -delete
241 git status --porcelain|grep '^' && { echo "The generated files listed above are not in .gitignore" ; exit 1; }; true
244 name: 'Automated run of xapian-check-patch'
245 runs-on: 'ubuntu-latest'
247 - name: Check out repository code
248 uses: actions/checkout@v2
251 - name: "Automated run of xapian-check-patch"
252 # Run the style checking script, checking changes between the common
253 # ancestor of the target branch of the PR (or master if this isn't a PR)
254 # and the revision being checked.
256 echo "GITHUB_BASE_REF='$GITHUB_BASE_REF'"
257 git diff ${GITHUB_BASE_REF:-origin/RELEASE/1.4}.. --|xapian-maintainer-tools/xapian-check-patch