104 lines
2.9 KiB
YAML
104 lines
2.9 KiB
YAML
# Continuous integration tasks running on Cirrus CI.
|
|
#
|
|
# This is currently used for testing under FreeBSD, which is not available at
|
|
# the other CI providers used by wx.
|
|
|
|
env:
|
|
CCACHE_SIZE: 1G
|
|
CCACHE_DIR: /tmp/ccache
|
|
|
|
task:
|
|
skip: "changesIncludeOnly('appveyor.yml','CMakeLists.txt','.circleci/**','.github/**','docs/**','interface/**','include/wx/{msw,osx,qt}/**','src/{msw,osx,qt}/**','build/{cmake,msw,osx}/**','locale/**')"
|
|
matrix:
|
|
- name: Cirrus CI / FreeBSD wxGTK 3
|
|
freebsd_instance:
|
|
image_family: freebsd-14-0
|
|
env:
|
|
osname: FreeBSD
|
|
- name: Cirrus CI / Debian ARM wxGTK 3
|
|
arm_container:
|
|
image: debian:11-slim
|
|
env:
|
|
osname: Linux
|
|
arch: arm
|
|
|
|
before_script: |
|
|
wxPROC_COUNT=`./build/tools/proc_count.sh`
|
|
# ARM systems have 64 CPUs but run out of memory and crash when using that
|
|
# many jobs, so limit them to something reasonable.
|
|
if [ $wxPROC_COUNT -gt 12 ]; then
|
|
wxPROC_COUNT=12
|
|
fi
|
|
|
|
echo wxBUILD_ARGS=-j$wxPROC_COUNT >> $CIRRUS_ENV
|
|
|
|
WX_EXTRA_PACKAGES='ccache git'
|
|
export WX_EXTRA_PACKAGES
|
|
|
|
case "${osname}" in
|
|
Linux)
|
|
WX_EXTRA_PACKAGES="$WX_EXTRA_PACKAGES \
|
|
g++ libexpat1-dev libjpeg-dev libpng-dev libtiff-dev make zlib1g-dev"
|
|
;;
|
|
esac
|
|
|
|
wxGTK_VERSION=3 ./build/tools/before_install.sh
|
|
|
|
echo "PATH=/usr/local/libexec/ccache:$PATH" >> $CIRRUS_ENV
|
|
|
|
# Show some information about the system.
|
|
uname -a
|
|
c++ --version
|
|
ccache --version
|
|
locale
|
|
locale -a
|
|
|
|
# Rather than getting all submodules, get just the ones we need, as we can
|
|
# use system libraries instead of the other ones.
|
|
update_submodules_script: |
|
|
git submodule update --init 3rdparty/catch 3rdparty/nanosvg src/stc/scintilla src/stc/lexilla
|
|
|
|
ccache_cache:
|
|
folder: /tmp/ccache
|
|
|
|
configure_script: |
|
|
case "${osname}" in
|
|
FreeBSD)
|
|
# We need to pass these flags so that libraries under /usr/local are found,
|
|
# because configure doesn't look for them there by default (it ought to
|
|
# always use pkg-config instead, but it currently doesn't do this either).
|
|
CPPFLAGS=-I/usr/local/include
|
|
LDFLAGS=-L/usr/local/lib
|
|
;;
|
|
esac
|
|
|
|
./configure --disable-optimise --disable-debug_info CXXFLAGS=-Werror CPPFLAGS=$CPPFLAGS LDFLAGS=$LDFLAGS
|
|
|
|
build_library_script: |
|
|
make -k $wxBUILD_ARGS
|
|
|
|
build_tests_script: |
|
|
make -k -C tests $wxBUILD_ARGS
|
|
|
|
test_script: |
|
|
cd tests
|
|
WX_TEST_WEBREQUEST_URL="0" ./test
|
|
|
|
build_samples_script: |
|
|
make -k -C samples $wxBUILD_ARGS
|
|
|
|
install_script: |
|
|
make install
|
|
case "${osname}" in
|
|
FreeBSD)
|
|
# Building sample requires GNU make, so install it just for this.
|
|
pkg install -q -y gmake
|
|
;;
|
|
esac
|
|
|
|
gmake -C samples/minimal -f makefile.unx clean
|
|
gmake -C samples/minimal -f makefile.unx $wxBUILD_ARGS
|
|
|
|
# Show cache statistics for information.
|
|
end_script: |
|
|
ccache -s
|