diff options
author | bartus | 2019-06-09 18:39:35 +0200 |
---|---|---|
committer | bartus | 2019-06-11 16:50:42 +0200 |
commit | 285055191df57408f722a1134100c7aead208841 (patch) | |
tree | 03a60d86d0d8e7afaae5f43240432ca001f7ca13 /.travis.yml | |
parent | 4cf16722fc6d54f67492154b29d5c93eeb38daa8 (diff) | |
download | aur-285055191df57408f722a1134100c7aead208841.tar.gz |
refactor arch:script
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 75 |
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" |