Add multi-package Alpine packaging
This commit is contained in:
@@ -2,10 +2,12 @@
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
package_dir="${APKBUILD_DIR:-${repo_root}/packaging/alpine/local/seaweedfs}"
|
||||
. "${repo_root}/scripts/apk/package-lib.sh"
|
||||
|
||||
repo_name="${ALPINE_REPO_NAME:-local}"
|
||||
arches="${ALPINE_ARCHES:-x86_64 aarch64}"
|
||||
packager="${PACKAGER:-Joachim Schlöffel <me@joachim-schloeffel.com>}"
|
||||
selected_packages="${ALPINE_PACKAGE:-${ALPINE_PACKAGES:-}}"
|
||||
|
||||
if [[ "${1:-}" != "--as-builder" && "$(id -u)" == "0" ]]; then
|
||||
addgroup -g 1000 builder 2>/dev/null || addgroup builder
|
||||
@@ -15,7 +17,7 @@ if [[ "${1:-}" != "--as-builder" && "$(id -u)" == "0" ]]; then
|
||||
printf 'permit nopass :wheel\n' > /etc/doas.d/wheel.conf
|
||||
printf '%%wheel ALL=(ALL) NOPASSWD: ALL\n' > /etc/sudoers.d/wheel
|
||||
chown -R builder:builder "${repo_root}"
|
||||
exec su builder -c "ALPINE_ARCHES='${arches}' ALPINE_REPO_NAME='${repo_name}' PACKAGER='${packager}' '${BASH_SOURCE[0]}' --as-builder"
|
||||
exec su builder -c "ALPINE_ARCHES='${arches}' ALPINE_REPO_NAME='${repo_name}' ALPINE_PACKAGES='${selected_packages}' PACKAGER='${packager}' '${BASH_SOURCE[0]}' --as-builder"
|
||||
fi
|
||||
|
||||
export PACKAGER="${packager}"
|
||||
@@ -36,20 +38,29 @@ fi
|
||||
|
||||
doas cp "${HOME}"/.abuild/*.rsa.pub /etc/apk/keys/
|
||||
|
||||
for arch in ${arches}; do
|
||||
case "${arch}" in
|
||||
x86_64|aarch64) ;;
|
||||
*) printf 'unsupported Alpine architecture: %s\n' "${arch}" >&2; exit 2 ;;
|
||||
esac
|
||||
while IFS= read -r package_dir; do
|
||||
apk_validate_package_dir "${package_dir}"
|
||||
|
||||
printf 'Building %s for %s\n' "$(basename "${package_dir}")" "${arch}"
|
||||
(
|
||||
export ALPINE_ARCH="${arch}"
|
||||
export CARCH="${arch}"
|
||||
cd "${package_dir}"
|
||||
abuild -r
|
||||
)
|
||||
for arch in ${arches}; do
|
||||
case "${arch}" in
|
||||
x86_64|aarch64) ;;
|
||||
*) printf 'unsupported Alpine architecture: %s\n' "${arch}" >&2; exit 2 ;;
|
||||
esac
|
||||
|
||||
mkdir -p "${REPODEST}/${repo_name}/${arch}"
|
||||
cp "${HOME}"/.abuild/*.rsa.pub "${REPODEST}/${repo_name}/${arch}/"
|
||||
done
|
||||
if ! apk_package_supports_arch "${package_dir}" "${arch}"; then
|
||||
printf 'Skipping %s for unsupported arch %s\n' "$(basename "${package_dir}")" "${arch}"
|
||||
continue
|
||||
fi
|
||||
|
||||
printf 'Building %s for %s\n' "$(basename "${package_dir}")" "${arch}"
|
||||
(
|
||||
export ALPINE_ARCH="${arch}"
|
||||
export CARCH="${arch}"
|
||||
cd "${package_dir}"
|
||||
abuild -r
|
||||
)
|
||||
|
||||
mkdir -p "${REPODEST}/${repo_name}/${arch}"
|
||||
cp "${HOME}"/.abuild/*.rsa.pub "${REPODEST}/${repo_name}/${arch}/"
|
||||
done
|
||||
done < <(apk_package_dirs "${repo_root}")
|
||||
|
||||
Reference in New Issue
Block a user