diff --git a/autobuilder/build b/autobuilder/build index 74f6162..a4497d1 100755 --- a/autobuilder/build +++ b/autobuilder/build @@ -8,10 +8,11 @@ export PKG_URL=$1 # Upgrade pacman -Suy --noconfirm +# gnupg dir permissions +chown -R "$BUILDUSER:$BUILDUSER" /.gnupg + # Workdir -chown -R builder:builder /.gnupg cd /buildroot # Build the damn thing -sudo -u builder git clone "$PKG_URL" . -sudo -u builder GNUPGHOME="/.gnupg" makepkg -s --noconfirm -L +sudo -u "$BUILDUSER" GNUPGHOME="/.gnupg" makepkg -s --noconfirm -L diff --git a/makepkg-ci b/makepkg-ci new file mode 100755 index 0000000..e8f593f --- /dev/null +++ b/makepkg-ci @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +shopt -s nullglob + +did="pkg-build-$$.$SRANDOM" +mkdir "/tmp/$did" + +pkg_dest=$1 +pkg_url=$2 + +#podman run --userns=keep-id -u root --rm -v "/tmp/$did:/buildroot" "spark:autobuilder" /build +git clone "$pkg_url" "/tmp/$did" +cd "/tmp/$did" +makepkg-podman 'localhost/spark:autobuilder' + +artifacts=( "/tmp/$did/"*.pkg.* ) +for i in "${artifacts[@]}"; do + i_name="${i##*/}" + + printf 'Found artifact: %s\n' "$i_name" + + if [[ -f "$pkg_dest/$i_name" ]]; then + printf '%s/%s already exists, not overwriting.\n' "$pkg_dest" "$i_name" + else + printf 'Copying %s to %s.\n' "$i_name" "$pkg_dest" + cp -vn "$i" "$pkg_dest" + fi +done + +# cleanup +rm -rf "/tmp/$did" diff --git a/makepkg-podman b/makepkg-podman index 68242a8..a73f7d8 100755 --- a/makepkg-podman +++ b/makepkg-podman @@ -1,27 +1,16 @@ #!/usr/bin/env bash -shopt -s nullglob -did="pkg-build-$$.$SRANDOM" -mkdir "/tmp/$did" +image=${1:-localhost/spark:autobuilder} -pkg_dest=$1 -pkg_url=$2 +podman_cmd=( + podman run --rm -u root + --userns=keep-id + -v "$PWD:/buildroot" + --workdir /buildroot + --name "autobuilder.$$" + --env "BUILDUSER=$USER" + --entrypoint /build + "$image" +) -podman run --userns=keep-id -u root --rm -v "/tmp/$did:/buildroot" "spark:autobuilder" /build "$pkg_url" - -artifacts=( "/tmp/$did/"*.pkg.* ) -for i in "${artifacts[@]}"; do - i_name="${i##*/}" - - printf 'Found artifact: %s\n' "$i_name" - - if [[ -f "$pkg_dest/$i_name" ]]; then - printf '%s/%s already exists, not overwriting.\n' "$pkg_dest" "$i_name" - else - printf 'Copying %s to %s.\n' "$i_name" "$pkg_dest" - cp -vn "$i" "$pkg_dest" - fi -done - -# cleanup -rm -rf "/tmp/$did" +"${podman_cmd[@]}" diff --git a/pkgbuilder b/pkgbuilder index cd90581..09a8e82 100755 --- a/pkgbuilder +++ b/pkgbuilder @@ -2,7 +2,7 @@ err() { printf '%s\n' "$*" >&2; } -build_remote() { makepkg-podman "$@"; } +build_remote() { makepkg-ci "$@"; } cleanup() { rm -f "$lockfile"; } lock() {