diff options
author | Erich Eckner <erich.eckner.ext@bestsecret.com> | 2024-07-09 21:42:22 +0200 |
---|---|---|
committer | Erich Eckner <erich.eckner.ext@bestsecret.com> | 2024-07-09 21:42:22 +0200 |
commit | a124e10bf68d2b05ae9dfbd76fd2b57168595590 (patch) | |
tree | 45390e7ebe1383a213e33039681e1530afef7999 | |
parent | 9890a3e48283145ae46372e5e90ebc695c903e33 (diff) | |
download | archlinuxewe-a124e10bf68d2b05ae9dfbd76fd2b57168595590.tar.xz |
run docker sequentially per package
-rwxr-xr-x | build-all-with-docker | 61 |
1 files changed, 23 insertions, 38 deletions
diff --git a/build-all-with-docker b/build-all-with-docker index 1676d9c65..fbccd3fd8 100755 --- a/build-all-with-docker +++ b/build-all-with-docker @@ -24,47 +24,32 @@ if [ -n "$(git status --porcelain)" ]; then exit 1 fi -ids=$( - for pkg in */PKGBUILD; do - cd "${pkg%/PKGBUILD}" - ../addPkgbuildPatch add - docker run -d -v .:/build arch-build:latest - docker run -d -v .:/build artix-build:latest - cd .. - done \ - | tee /dev/stderr -) +ids=() -check_and_commit_package_updates() { - [ -z "$(git status --porcelain)" ] && return - for pkg in $( - git status --porcelain \ - | sed ' - s@^.. @@ - s@/[^/]\+$@@ - ' \ - | grep -vxFf <( - docker ps --format '{{.Mounts}}' --no-trunc \ - | sed 's@^.*/@@' - ) - ); do - if ! [ -d "$pkg" ]; then - >&2 echo "$pwd is not a directory" - continue - fi - cd "$pkg" +for pkg in */PKGBUILD; do + cd "${pkg%/PKGBUILD}" + ( + ../addPkgbuildPatch add + docker run -v .:/build arch-build:latest + docker run -v .:/build arch32-i486-build + docker run -v .:/build arch32-i686-build + docker run -v .:/build arch32-pentium4-build + docker run -v .:/build artix-build:latest ../addPkgbuildPatch del - [ -n "$(git status --porcelain -- .)" ] \ - && ../commit-package -a \ - && git push - cd .. - done -} + [ -n "$(git status --porcelain -- PKGBUILD)" ] && ../commit-package -a && git push + ) & + ids[${#ids[@]}]=$! + cd .. +done -while docker ps --no-trunc | grep -wF "${ids}"; do +while [ "${#ids[@]}" -gt 0 ]; do sleep 10 - check_and_commit_package_updates + ids=( + $( + ls /proc \ + | grep -xFf <(printf '%s\n' "${ids[@]}") \ + | tee /dev/stderr + ) + ) date done - -check_and_commit_package_updates |