wxwidgets/.cirrus.yml
Vadim Zeitlin e9cfd92869 Add a build using ARM to Cirrus CI
Use matrix to perform the same build steps for different platforms and
account for FreeBSD specific things by explicitly checking the OS name
in the scripts.
2022-12-31 19:23:58 +01:00

92 lines
2.5 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','.github/**','docs/**','interface/**','include/wx/{msw,osx,qt}/**','src/{msw,osx,qt}/**','build/{cmake,msw,osx}/**')"
matrix:
- name: Cirrus CI / FreeBSD 13 wxGTK 3
freebsd_instance:
image_family: freebsd-13-0
env:
osname: FreeBSD
- name: Cirrus CI / Debian ARM wxGTK 3
arm_container:
image: debian:11-slim
env:
osname: Linux
arch: arm
before_script: |
echo LD_LIBRARY_PATH=`pwd`/lib >> $CIRRUS_ENV
wxPROC_COUNT=`./build/tools/proc_count.sh`
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++ make"
;;
esac
wxGTK_VERSION=3 ./build/tools/before_install.sh
echo "PATH=/usr/local/libexec/ccache:$PATH" >> $CIRRUS_ENV
# 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
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