Optimize Alpine packaging workflow
Build Alpine Packages / build-and-publish (v3.24, 3.24) (push) Successful in 2h16m43s
Build Alpine Packages / build-and-publish (v3.24, 3.24) (push) Successful in 2h16m43s
This commit is contained in:
+24
-11
@@ -19,6 +19,8 @@ if [[ "${builder_gid}" == "0" ]]; then
|
||||
builder_gid=1000
|
||||
fi
|
||||
|
||||
image_name="${ALPINE_APK_BUILDER_IMAGE:-alpine-apk-builder:${alpine_version}-${builder_uid}-${builder_gid}}"
|
||||
|
||||
cache_scope_from_remote() {
|
||||
local remote
|
||||
local path
|
||||
@@ -63,7 +65,6 @@ run_for_arch() {
|
||||
local arch="$1"
|
||||
local subcommand="$2"
|
||||
local package_dir="$3"
|
||||
local image_name
|
||||
local container_package_dir
|
||||
local package_name
|
||||
local cache_scope
|
||||
@@ -73,19 +74,9 @@ run_for_arch() {
|
||||
apk_validate_package_dir "${package_dir}"
|
||||
package_name="$(apk_package_name "${package_dir}")"
|
||||
container_package_dir="$(apk_container_package_dir "${repo_root}" "${package_dir}")"
|
||||
image_name="${ALPINE_APK_BUILDER_IMAGE:-alpine-apk-builder:${arch}}"
|
||||
cache_scope="${ALPINE_APK_CACHE_SCOPE:-$(cache_scope_from_remote)}"
|
||||
cache_prefix="${ALPINE_APK_CACHE_PREFIX:-alpine-apk}-${cache_scope}-${package_name}-${arch}"
|
||||
|
||||
docker build \
|
||||
--platform "${build_platform}" \
|
||||
--build-arg "ALPINE_VERSION=${alpine_version}" \
|
||||
--build-arg "BUILDER_UID=${builder_uid}" \
|
||||
--build-arg "BUILDER_GID=${builder_gid}" \
|
||||
-f "${repo_root}/scripts/apk/Dockerfile" \
|
||||
-t "${image_name}" \
|
||||
"${repo_root}"
|
||||
|
||||
docker_args=(--rm --platform "${build_platform}")
|
||||
if [[ -t 0 && -t 1 ]]; then
|
||||
docker_args+=(-it)
|
||||
@@ -111,11 +102,33 @@ run_for_arch() {
|
||||
"${subcommand}"
|
||||
}
|
||||
|
||||
build_builder_image() {
|
||||
docker build \
|
||||
--platform "${build_platform}" \
|
||||
--build-arg "ALPINE_VERSION=${alpine_version}" \
|
||||
--build-arg "BUILDER_UID=${builder_uid}" \
|
||||
--build-arg "BUILDER_GID=${builder_gid}" \
|
||||
-f "${repo_root}/scripts/apk/Dockerfile" \
|
||||
-t "${image_name}" \
|
||||
"${repo_root}"
|
||||
}
|
||||
|
||||
mkdir -p \
|
||||
"${repo_root}/.cache/abuild" \
|
||||
"${repo_root}/.cache/apk-distfiles" \
|
||||
"${repo_root}/packages"
|
||||
|
||||
case "${command_name}" in
|
||||
build-all|build|checksum|lint|shell) ;;
|
||||
*)
|
||||
printf 'unknown command: %s\n' "${command_name}" >&2
|
||||
printf 'usage: %s [build|build-all|checksum|lint|shell] [x86_64|aarch64]\n' "$0" >&2
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
|
||||
build_builder_image
|
||||
|
||||
case "${command_name}" in
|
||||
build-all)
|
||||
while IFS= read -r package_dir; do
|
||||
|
||||
Reference in New Issue
Block a user