Build Alpine Packages / preflight (pull_request) Failing after 4s
Build Alpine Packages / build (gitea) (pull_request) Skipped
Build Alpine Packages / build (greptimedb) (pull_request) Skipped
Build Alpine Packages / build (lavinmq) (pull_request) Skipped
Build Alpine Packages / build (nifi) (pull_request) Skipped
Build Alpine Packages / build (rclone-openrc) (pull_request) Skipped
Build Alpine Packages / build (seaweedfs) (pull_request) Skipped
Build Alpine Packages / verify-and-publish (pull_request) Skipped
56 lines
2.0 KiB
Bash
Executable File
56 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
package_dir="${PACKAGE_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}"
|
|
repo_root="${REPO_ROOT:-$(cd "${package_dir}/../../../.." && pwd)}"
|
|
pkgver="$(awk -F= '$1 == "pkgver" { print $2; exit }' "${package_dir}/APKBUILD")"
|
|
distfiles_dir="${repo_root}/.cache/apk-distfiles"
|
|
shards_cache_dir="${repo_root}/.cache/shards"
|
|
source_archive="${distfiles_dir}/lavinmq-${pkgver}.tar.gz"
|
|
shards_archive="${package_dir}/lavinmq-${pkgver}-shards.tar.gz"
|
|
assets_archive="${package_dir}/lavinmq-${pkgver}-assets.tar.gz"
|
|
tmpdir="$(mktemp -d)"
|
|
assets_dir="${tmpdir}/assets"
|
|
|
|
cleanup() {
|
|
rm -rf "${tmpdir}"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
mkdir -p "${distfiles_dir}" "${shards_cache_dir}"
|
|
if [[ ! -f "${source_archive}" ]]; then
|
|
curl --fail --location --retry 3 --silent --show-error \
|
|
--output "${source_archive}" \
|
|
"https://github.com/cloudamqp/lavinmq/archive/refs/tags/v${pkgver}.tar.gz"
|
|
fi
|
|
|
|
tar -xzf "${source_archive}" -C "${tmpdir}"
|
|
source_dir="${tmpdir}/lavinmq-${pkgver}"
|
|
if [[ ! -d "${source_dir}" ]]; then
|
|
printf 'unexpected LavinMQ source archive layout: %s\n' "${source_archive}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# shard.lock pins the Crystal dependencies. `make js` fetches exactly the
|
|
# frontend assets declared by this upstream version's Makefile.
|
|
(
|
|
cd "${source_dir}"
|
|
SHARDS_CACHE_PATH="${shards_cache_dir}" shards install --production
|
|
make js
|
|
)
|
|
|
|
tar --create --gzip --file "${shards_archive}" \
|
|
--directory "${source_dir}" \
|
|
--sort=name --mtime='UTC 1970-01-01' --owner=0 --group=0 --numeric-owner \
|
|
lib
|
|
mkdir -p "${assets_dir}"
|
|
# The offline Makefile patch intentionally reads every asset from the root of
|
|
# .alpine-assets, including helpers.segment.js which upstream stores in chunks/.
|
|
find "${source_dir}/static/js/lib" -type f -exec cp -p {} "${assets_dir}/" \;
|
|
tar --create --gzip --file "${assets_archive}" \
|
|
--directory "${assets_dir}" \
|
|
--sort=name --mtime='UTC 1970-01-01' --owner=0 --group=0 --numeric-owner \
|
|
.
|
|
|
|
printf 'Updated %s and %s\n' "${shards_archive##*/}" "${assets_archive##*/}"
|