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)"
|
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||||
DEB_ASSET_DIR="$SCRIPT_DIR/deb"
|
DEB_ASSET_DIR="$SCRIPT_DIR/deb"
|
||||||
PACKAGE_NAME="uce"
|
PACKAGE_NAME="uce"
|
||||||
REVISION="${UCE_DEB_REVISION:-1}"
|
REVISION="${UCE_DEB_REVISION:-}"
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
cat <<'EOF'
|
cat <<'EOF'
|
||||||
Usage:
|
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:
|
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_ARCH Override package architecture
|
||||||
UCE_DEB_WEBROOT Public web root staged into the package (default: /var/www/html)
|
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)
|
UCE_DEB_BUNDLE_WASI_SDK Bundle pinned /opt/wasi-sdk into the package (default: 1)
|
||||||
@ -42,7 +44,7 @@ resolve_arch() {
|
|||||||
|
|
||||||
validate_version() {
|
validate_version() {
|
||||||
local version="$1"
|
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
|
echo "Invalid Debian version string: $version" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@ -143,12 +145,22 @@ write_md5sums() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ $# -ne 1 ]]; then
|
if [[ $# -gt 1 ]]; then
|
||||||
usage >&2
|
usage >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
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"
|
validate_version "$VERSION"
|
||||||
|
|
||||||
require_command bash
|
require_command bash
|
||||||
@ -167,7 +179,10 @@ require_command cp
|
|||||||
require_command sort
|
require_command sort
|
||||||
|
|
||||||
ARCH="$(resolve_arch)"
|
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}"
|
PACKAGE_BASENAME="${PACKAGE_NAME}_${PACKAGE_VERSION}_${ARCH}"
|
||||||
STAGE_DIR="$REPO_ROOT/pkg/$PACKAGE_BASENAME"
|
STAGE_DIR="$REPO_ROOT/pkg/$PACKAGE_BASENAME"
|
||||||
DEBIAN_DIR="$STAGE_DIR/DEBIAN"
|
DEBIAN_DIR="$STAGE_DIR/DEBIAN"
|
||||||
|
|||||||
@ -10,10 +10,12 @@ WEBROOT="${UCE_RPM_WEBROOT:-/var/www/html}"
|
|||||||
usage() {
|
usage() {
|
||||||
cat <<'EOF'
|
cat <<'EOF'
|
||||||
Usage:
|
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:
|
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_ARCH Override RPM architecture
|
||||||
UCE_RPM_WEBROOT Public web root staged into the package (default: /var/www/html)
|
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)
|
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"
|
ln -sfn "$base" "$stage_dir/opt/wasmtime"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ $# -ne 1 ]]; then
|
if [[ $# -gt 1 ]]; then
|
||||||
usage >&2
|
usage >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
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"
|
validate_version "$VERSION"
|
||||||
|
|
||||||
require_command bash
|
require_command bash
|
||||||
@ -133,7 +161,7 @@ require_command python3
|
|||||||
require_command readlink
|
require_command readlink
|
||||||
|
|
||||||
ARCH="$(resolve_arch)"
|
ARCH="$(resolve_arch)"
|
||||||
PACKAGE_VERSION="${VERSION}-${RELEASE}"
|
PACKAGE_VERSION="$FULL_VERSION"
|
||||||
BUILD_ROOT="$REPO_ROOT/pkg/rpm-build"
|
BUILD_ROOT="$REPO_ROOT/pkg/rpm-build"
|
||||||
STAGE_DIR="$BUILD_ROOT/stage"
|
STAGE_DIR="$BUILD_ROOT/stage"
|
||||||
RPMBUILD_DIR="$BUILD_ROOT/rpmbuild"
|
RPMBUILD_DIR="$BUILD_ROOT/rpmbuild"
|
||||||
@ -144,7 +172,7 @@ DIST_DIR="$REPO_ROOT/dist"
|
|||||||
bash "$REPO_ROOT/scripts/build_linux.sh"
|
bash "$REPO_ROOT/scripts/build_linux.sh"
|
||||||
|
|
||||||
rm -rf -- "$BUILD_ROOT"
|
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"
|
copy_payload "$INSTALL_ROOT" "$WEBROOT" "$STAGE_DIR"
|
||||||
bundle_wasi_sdk "$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
|
cat > "$SPEC_FILE" <<EOF
|
||||||
|
%global __os_install_post %{nil}
|
||||||
|
|
||||||
Name: $PACKAGE_NAME
|
Name: $PACKAGE_NAME
|
||||||
Version: $VERSION
|
Version: $VERSION
|
||||||
Release: $RELEASE%{?dist}
|
Release: $RELEASE%{?dist}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user