summarylogtreecommitdiffstats
path: root/.travis.yml
diff options
context:
space:
mode:
authorbartus2019-06-09 18:39:35 +0200
committerbartus2019-06-11 16:50:42 +0200
commit285055191df57408f722a1134100c7aead208841 (patch)
tree03a60d86d0d8e7afaae5f43240432ca001f7ca13 /.travis.yml
parent4cf16722fc6d54f67492154b29d5c93eeb38daa8 (diff)
downloadaur-285055191df57408f722a1134100c7aead208841.tar.gz
refactor arch:script
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml75
1 files changed, 45 insertions, 30 deletions
diff --git a/.travis.yml b/.travis.yml
index 96a8e88b5e65..be9fb188d6da 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,10 +11,17 @@ cache:
- AUR-repo
- LuxCore.git
+env:
+# force update every n days
+ - update_interval=5
+
services:
- docker
arch:
+ cache:
+ - ccache: true
+ - pacman-cache: true
repos:
- bartus=https://github.com/bartoszek/AUR-repo/raw/master
packages:
@@ -22,40 +29,48 @@ arch:
# - ccache
# - moreutils
script:
- - "echo 'options+=(ccache)' >> PKGBUILD"
- - "export CCACHE_DIR='/build/.ccache'"
-# COMPRESSXZ=(), can't be passed to makepkg as bash dosn't support array in `export` statement.
- - "echo 'COMPRESSXZ=(xz -T 0 -7 -c -z -)' >> PKGBUILD"
-# override `package-cleanup.hook` to preserve cache for travis.
- - "sudo mkdir /etc/pacman.d/hooks/ && sudo ln -s /dev/null /etc/pacman.d/hooks/package-cleanup.hook"
- - "sudo pacman -S --noconfirm ccache moreutils bc"
-# check for new version
-# @update_interval in days
- - "update_interval=5"
- - 'update_offset=$(. PKGBUILD; sha1sum <<<"$pkgname"|sed -e "s/[a-z -]//g" -e "s/^0*//"|echo `cat`%$update_interval|bc)'
- - "next_update=$(((365-`date +%j`+update_offset)%update_interval))"
-# check for (opt|)depends update
+# prepare ENV:
+# 1. multithreading:
+# 1.1 COMPRESSXZ=(-xz -T0), can't be passed to makepkg as bash dosn't support array in `export` statement.
+# 1.2 MAKEFLAGS='-j2'
+# 2. override `package-cleanup.hook` to preserve cache for travis.
+ - |
+ echo 'options+=(ccache)' >> PKGBUILD
+ echo 'COMPRESSXZ=(xz -T 0 -c -z -)' >> PKGBUILD
+ echo "MAKEFLAGS='-j2'" >> PKGBUILD
+ sudo mkdir /etc/pacman.d/hooks/ && sudo ln -s /dev/null /etc/pacman.d/hooks/package-cleanup.hook
+ sudo pacman -S --noconfirm ccache moreutils bc
+# check interval update
+ - |
+ update_offset=$(. PKGBUILD; sha1sum <<< "$pkgname"|sed -e "s/[a-z -]//g" -e "s/^0*//"|echo `cat`%$update_interval|bc)
+ next_update=$(((365-`date +%j`+update_offset)%update_interval))
+# check (opt|)depends update
- |
- build_deps=$(. PKGBUILD; IFS=$'\n'; echo -e "${depends[*]}\n${makedepends[*]}"; )
- build_deps=$(for pkg in $build_deps; do pacman -S --print-format '%n' $pkg|tail -1; done|sort -u;)
- echo -e "Build dependency:\n${build_deps[*]}"
- new_deps_ver=$(for pkg in $build_deps; do pacman -S --print-format '%n %v' $pkg|tail -1; done;)
- echo -e "Pacman dependency versions:\n$new_deps_ver"
- build_info=$(curl -sL $(. PKGBUILD; pacman -S --print $pkgname|tail -n1)|bsdtar xJOf - .BUILDINFO|grep -Po '^installed = \K.*'|rev|while IFS=$'-' read arch pkgrel pkgver pkgname; do echo $pkgrel-$pkgver $pkgname; done|rev)
- old_deps_ver=$(echo "$build_info"|grep -f <(echo -e "$build_deps" ))
- echo -e "AUR-repo. BUILDINFO dependency versions:\n$old_deps_ver"
- dep_update=$(diff -y --suppress-common-lines <(echo "$old_deps_ver"|sort) <(echo "$new_deps_ver"|sort) >&2; echo $?;)
-# force update on commit message containing [force|rebuild]
+ build_deps=$(. PKGBUILD; IFS=$'\n'; echo -e "${depends[*]}\n${makedepends[*]}"; )
+ build_deps=$(for pkg in $build_deps; do pacman -S --print-format '%n' $pkg|tail -1; done|sort -u;)
+ new_deps_ver=$(for pkg in $build_deps; do pacman -S --print-format '%n %v' $pkg|tail -1; done;)
+ build_info=$(curl -sL $(. PKGBUILD; pacman -S --print $pkgname|tail -n1)|bsdtar xJOf - .BUILDINFO|grep -Po '^installed = \K.*'|rev|while IFS=$'-' read arch pkgrel pkgver pkgname; do echo $pkgrel-$pkgver $pkgname; done|rev)
+ old_deps_ver=$(echo "$build_info"|grep -f <(echo "$build_deps" ))
+ printf "%-50s %50s\n" "BUILDINFO dependency versions" "PACMAN dependency versions"
+ dep_update=$(diff -y -W 100 --tabsize=4 <(echo "$old_deps_ver"|sort) <(echo "$new_deps_ver"|sort) >&2; echo $?;)
+# check commit update
- 'force_update=$(git log --pretty=%B -1|egrep -q "\[(force|rebuild)\]"; echo $?)'
- - "makepkg -od --skipinteg"
- - "new_pkgver=$(. PKGBUILD; [[ -v epoch ]] && echo -n $epoch:; echo $pkgver-$pkgrel)"
- - "old_pkgver=$(. PKGBUILD; pacman -S --print-format %v $pkgname|tail -n1)"
+# check version
+ - |
+ makepkg -od --skipinteg
+ new_pkgver=$(. PKGBUILD; [[ -v epoch ]] && echo -n $epoch:; echo $pkgver-$pkgrel)
+ old_pkgver=$(. PKGBUILD; pacman -S --print-format %v $pkgname|tail -n1)
+# skipp build if:
+# 1. no new version
+# 2. no dependency update
+# 3. no force update
- '[[ "$new_pkgver" == "$old_pkgver" && $next_update != 0 && $force_update != 0 && dep_update != 0 ]] && { echo -e "Current version is up to date!\nNext force update in $next_update days!"; exit 0; }'
# exit with makepkg return code
- - "set -o pipefail"
- - "makepkg -s --noconfirm TRAVIS=1 MAKEFLAGS='-j2' 2>&1 |ts -s '[%.T]'; makepkg_ret=$?"
- - "ccache -s"
- - "exit $makepkg_ret"
+ - |
+ set -o pipefail
+ makepkg -s --noconfirm TRAVIS=1 MAKEFLAGS='-j2' 2>&1 |ts -s '[%.T]'
+ makepkg_ret=$? ccache -s
+ exit $makepkg_ret
script:
- "curl -s https://raw.githubusercontent.com/bartoszek/arch-travis/pacman-pkg-cache/arch-travis.sh | bash"