78 lines
2.5 KiB
YAML
78 lines
2.5 KiB
YAML
|
sudo: required
|
||
|
language: c
|
||
|
|
||
|
branches:
|
||
|
only:
|
||
|
- /.*/
|
||
|
|
||
|
cache:
|
||
|
directories:
|
||
|
- ~/.ccache
|
||
|
- ~/.pkg-cache
|
||
|
- ~/.cache/yay
|
||
|
- vcglib
|
||
|
- meshlab
|
||
|
|
||
|
services:
|
||
|
- docker
|
||
|
|
||
|
archlinux:
|
||
|
mount:
|
||
|
- ~/.ccache:~/.ccache
|
||
|
- ~/.pkg-cache:/var/cache/pacman/pkg
|
||
|
- ~/.cache/yay:~/.cache/yay
|
||
|
repos:
|
||
|
# - bartus=https://github.com/bartoszek/AUR-repo/raw/master
|
||
|
# f2c added as workaround for yay problem with building levmar.
|
||
|
packages:
|
||
|
- ccache
|
||
|
- moreutils
|
||
|
- f2c
|
||
|
- levmar
|
||
|
- lib3ds
|
||
|
- mpir
|
||
|
before_install:
|
||
|
# 1.Override `package-cleanup.hook` to preserve cache for travis.
|
||
|
# 2.Enable ccache
|
||
|
# 3.Multithreaded build and compress
|
||
|
# 4.Suppress all gcc warnings
|
||
|
- |
|
||
|
sudo mkdir /etc/pacman.d/hooks/
|
||
|
sudo ln -s /dev/null /etc/pacman.d/hooks/package-cleanup.hook
|
||
|
sudo sed -i '/^BUILDENV/s/\!ccache/ccache/' /etc/makepkg.conf
|
||
|
sudo sed -i '/#MAKEFLAGS=/c MAKEFLAGS="-j2"' /etc/makepkg.conf
|
||
|
sudo sed -i '/^COMPRESSXZ/s/\xz/xz -T 2/' /etc/makepkg.conf
|
||
|
sudo sed -i '$a CFLAGS="$CFLAGS -w"' /etc/makepkg.conf
|
||
|
sudo sed -i '$a CXXFLAGS="$CXXFLAGS -w"' /etc/makepkg.conf
|
||
|
script:
|
||
|
# - "( . PKGBUILD ; pacman -Q ${depends[@]} ${makedepends[@]} 2>&1 1>/dev/null|cut -d' ' -f3| xargs -n1 yay -S )"
|
||
|
# Normalize TRAVIS variable
|
||
|
- |
|
||
|
[ "$TRAVIS" == "true" ] && TRAVIS=1 || TRAVIS=0
|
||
|
export NINJA_STATUS="[%p₋|₋%f<%r<%u₋|₋%obps₋]₋"
|
||
|
# Build
|
||
|
- 'echo "Travis initialization time: $travis_uptime seconds"'
|
||
|
- "arch_uptime=$(cut -d' ' -f1 /proc/uptime|cut -d'.' -f1)"
|
||
|
- 'echo "Arch-Travis initialization time: $((arch_uptime-travis_uptime)) seconds"'
|
||
|
- ccache -s
|
||
|
- ccache -z
|
||
|
# set timeout to 50m minus current uptime, minus travis cache in time, minus 60 second buffer for arch-travis cleanup.
|
||
|
- timeout $((50*60-arch_uptime-travis_uptime-60)) makepkg -s --noconfirm > >(ts -s '%.T'); _makepkg_return=$?
|
||
|
- sudo pacman -Sc --noconfirm
|
||
|
- ccache -s
|
||
|
- ccache -z
|
||
|
- exit $_makepkg_return
|
||
|
script:
|
||
|
- "export travis_uptime=$(cut -d' ' -f1 /proc/uptime|cut -d'.' -f1)"
|
||
|
- 'echo "Travis initialization time: $travis_uptime seconds"'
|
||
|
# assume caching out will take the same amount of time as caching in those making build time equal to 50 minutes minus two time current uptime.
|
||
|
- "curl -s https://raw.githubusercontent.com/bartoszek/arch-travis/master/arch-travis.sh| timeout $((50*60-2*travis_uptime)) bash"
|
||
|
- "echo pacman pkg cache size: $(du -h ~/.pkg-cache|cut -f1) in $(ls ~/.pkg-cache|wc -l) files"
|
||
|
|
||
|
#deploy:
|
||
|
# provider: script
|
||
|
# script: bash .travis_deploy.sh
|
||
|
# on:
|
||
|
# branch: master
|
||
|
# skip_cleanup: true
|