chore: use version file for package builds
This commit is contained in:
parent
6be92ef93e
commit
34a97e2577
@ -5,15 +5,17 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
DEB_ASSET_DIR="$SCRIPT_DIR/deb"
|
||||
PACKAGE_NAME="uce"
|
||||
REVISION="${UCE_DEB_REVISION:-1}"
|
||||
REVISION="${UCE_DEB_REVISION:-}"
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage:
|
||||
scripts/make_deb.sh VERSION
|
||||
scripts/make_deb.sh [VERSION]
|
||||
|
||||
When VERSION is omitted, scripts/make_deb.sh reads VERSION from version.txt.
|
||||
|
||||
Environment:
|
||||
UCE_DEB_REVISION Debian package revision suffix (default: 1)
|
||||
UCE_DEB_REVISION Optional Debian package revision suffix
|
||||
UCE_DEB_ARCH Override package architecture
|
||||
UCE_DEB_WEBROOT Public web root staged into the package (default: /var/www/html)
|
||||
UCE_DEB_BUNDLE_WASI_SDK Bundle pinned /opt/wasi-sdk into the package (default: 1)
|
||||
@ -42,7 +44,7 @@ resolve_arch() {
|
||||
|
||||
validate_version() {
|
||||
local version="$1"
|
||||
if [[ ! "$version" =~ ^[0-9][A-Za-z0-9.+:~]*$ ]]; then
|
||||
if [[ ! "$version" =~ ^[0-9][A-Za-z0-9.+:~-]*$ ]]; then
|
||||
echo "Invalid Debian version string: $version" >&2
|
||||
exit 1
|
||||
fi
|
||||
@ -143,12 +145,22 @@ write_md5sums() {
|
||||
)
|
||||
}
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
if [[ $# -gt 1 ]]; then
|
||||
usage >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VERSION="$1"
|
||||
if [[ $# -eq 1 ]]; then
|
||||
VERSION="$1"
|
||||
else
|
||||
if [[ ! -r "$REPO_ROOT/version.txt" ]]; then
|
||||
echo "Missing version.txt and no VERSION argument supplied" >&2
|
||||
exit 1
|
||||
fi
|
||||
# shellcheck disable=SC1091
|
||||
. "$REPO_ROOT/version.txt"
|
||||
VERSION="${VERSION:-}"
|
||||
fi
|
||||
validate_version "$VERSION"
|
||||
|
||||
require_command bash
|
||||
@ -167,7 +179,10 @@ require_command cp
|
||||
require_command sort
|
||||
|
||||
ARCH="$(resolve_arch)"
|
||||
PACKAGE_VERSION="${VERSION}-${REVISION}"
|
||||
PACKAGE_VERSION="$VERSION"
|
||||
if [[ -n "$REVISION" ]]; then
|
||||
PACKAGE_VERSION="${PACKAGE_VERSION}-${REVISION}"
|
||||
fi
|
||||
PACKAGE_BASENAME="${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCH}"
|
||||
STAGE_DIR="$REPO_ROOT/pkg/$PACKAGE_BASENAME"
|
||||
DEBIAN_DIR="$STAGE_DIR/DEBIAN"
|
||||
|
||||
@ -10,10 +10,12 @@ WEBROOT="${UCE_RPM_WEBROOT:-/var/www/html}"
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage:
|
||||
scripts/make_rpm.sh VERSION
|
||||
scripts/make_rpm.sh [VERSION]
|
||||
|
||||
When VERSION is omitted, scripts/make_rpm.sh reads VERSION, MAJOR, and RELEASE from version.txt.
|
||||
|
||||
Environment:
|
||||
UCE_RPM_RELEASE RPM release suffix (default: 1)
|
||||
UCE_RPM_RELEASE Override RPM release suffix (default: RELEASE from version.txt)
|
||||
UCE_RPM_ARCH Override RPM architecture
|
||||
UCE_RPM_WEBROOT Public web root staged into the package (default: /var/www/html)
|
||||
UCE_RPM_BUNDLE_WASI_SDK Bundle pinned /opt/wasi-sdk into the package (default: 1)
|
||||
@ -115,12 +117,38 @@ bundle_wasmtime() {
|
||||
ln -sfn "$base" "$stage_dir/opt/wasmtime"
|
||||
}
|
||||
|
||||
if [[ $# -ne 1 ]]; then
|
||||
if [[ $# -gt 1 ]]; then
|
||||
usage >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
VERSION="$1"
|
||||
FULL_VERSION=""
|
||||
if [[ $# -eq 1 ]]; then
|
||||
FULL_VERSION="$1"
|
||||
RPM_VERSION="${FULL_VERSION%%-*}"
|
||||
RPM_RELEASE_PART="${FULL_VERSION#*-}"
|
||||
if [[ "$RPM_RELEASE_PART" == "$FULL_VERSION" ]]; then
|
||||
RPM_RELEASE_PART="$RELEASE"
|
||||
fi
|
||||
else
|
||||
if [[ ! -r "$REPO_ROOT/version.txt" ]]; then
|
||||
echo "Missing version.txt and no VERSION argument supplied" >&2
|
||||
exit 1
|
||||
fi
|
||||
# shellcheck disable=SC1091
|
||||
. "$REPO_ROOT/version.txt"
|
||||
FULL_VERSION="${VERSION:-}"
|
||||
RPM_VERSION="${MAJOR:-${FULL_VERSION%%-*}}"
|
||||
RPM_RELEASE_PART="${RELEASE:-${FULL_VERSION#*-}}"
|
||||
fi
|
||||
|
||||
if [[ -z "$FULL_VERSION" || -z "$RPM_VERSION" || -z "$RPM_RELEASE_PART" ]]; then
|
||||
echo "Could not derive RPM version from VERSION/MAJOR/RELEASE" >&2
|
||||
exit 1
|
||||
fi
|
||||
RPM_RELEASE_PART="${RPM_RELEASE_PART//-/_}"
|
||||
VERSION="$RPM_VERSION"
|
||||
RELEASE="${UCE_RPM_RELEASE:-$RPM_RELEASE_PART}"
|
||||
validate_version "$VERSION"
|
||||
|
||||
require_command bash
|
||||
@ -133,7 +161,7 @@ require_command python3
|
||||
require_command readlink
|
||||
|
||||
ARCH="$(resolve_arch)"
|
||||
PACKAGE_VERSION="${VERSION}-${RELEASE}"
|
||||
PACKAGE_VERSION="$FULL_VERSION"
|
||||
BUILD_ROOT="$REPO_ROOT/pkg/rpm-build"
|
||||
STAGE_DIR="$BUILD_ROOT/stage"
|
||||
RPMBUILD_DIR="$BUILD_ROOT/rpmbuild"
|
||||
@ -144,7 +172,7 @@ DIST_DIR="$REPO_ROOT/dist"
|
||||
bash "$REPO_ROOT/scripts/build_linux.sh"
|
||||
|
||||
rm -rf -- "$BUILD_ROOT"
|
||||
mkdir -p "$INSTALL_ROOT" "$STAGE_DIR/etc/uce" "$STAGE_DIR/usr/lib/systemd/system" "$RPMBUILD_DIR"/{BUILD,RPMS,SOURCES,SPECS,SRPMS} "$DIST_DIR"
|
||||
mkdir -p "$INSTALL_ROOT" "$STAGE_DIR/etc/uce" "$STAGE_DIR/usr/lib/systemd/system" "$STAGE_DIR/var/cache/uce" "$STAGE_DIR/var/lib/uce" "$RPMBUILD_DIR"/{BUILD,RPMS,SOURCES,SPECS,SRPMS} "$DIST_DIR"
|
||||
|
||||
copy_payload "$INSTALL_ROOT" "$WEBROOT" "$STAGE_DIR"
|
||||
bundle_wasi_sdk "$STAGE_DIR"
|
||||
@ -158,6 +186,8 @@ install -m 0644 "$REPO_ROOT/scripts/deb/uce.service" "$STAGE_DIR/usr/lib/systemd
|
||||
)
|
||||
|
||||
cat > "$SPEC_FILE" <<EOF
|
||||
%global __os_install_post %{nil}
|
||||
|
||||
Name: $PACKAGE_NAME
|
||||
Version: $VERSION
|
||||
Release: $RELEASE%{?dist}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user