38 lines
1.7 KiB
Bash
Executable File
38 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
|
|
LOCK="$ROOT/deploys/versions.lock.json"
|
|
VERSION=${1:-$(awk -F'"' '/"version"[[:space:]]*:/ {print $4; exit}' "$LOCK")}
|
|
[[ "$VERSION" =~ ^[0-9A-Za-z][0-9A-Za-z.+_-]*$ ]] || { echo 'invalid version' >&2; exit 2; }
|
|
|
|
RELEASE_DIR="$ROOT/dist/release-$VERSION"
|
|
STAGE="$ROOT/dist/package-$VERSION"
|
|
ARCHIVE="$ROOT/deploys/packages/sip-go-agent-$VERSION-linux-amd64.tar.gz"
|
|
rm -rf -- "$RELEASE_DIR" "$STAGE" "$ARCHIVE" "$ARCHIVE.sha256"
|
|
RELEASE_VERSION="$VERSION" "$ROOT/scripts/build-release.sh" "$RELEASE_DIR"
|
|
mkdir -p "$STAGE" "$(dirname -- "$ARCHIVE")"
|
|
cp -a "$RELEASE_DIR/." "$STAGE/"
|
|
mkdir -p "$STAGE/systemd" "$STAGE/env" "$STAGE/config" "$STAGE/cell"
|
|
cp "$ROOT/deploys/install.sh" "$STAGE/install.sh"
|
|
cp "$ROOT/deploys/cell/nonprod-call-evidence.sh" "$STAGE/cell/nonprod-call-evidence.sh"
|
|
cp "$ROOT/deploys/systemd/"*.service "$STAGE/systemd/"
|
|
cp "$ROOT/deploys/env/"*.env.example "$STAGE/env/"
|
|
cp "$ROOT/deploys/config/agent-endpoints.example.json" "$STAGE/config/"
|
|
cp "$LOCK" "$STAGE/versions.lock.json"
|
|
chmod 0755 "$STAGE/install.sh" "$STAGE/cell/nonprod-call-evidence.sh"
|
|
chmod 0644 "$STAGE/systemd/"*.service "$STAGE/env/"*.env.example "$STAGE/config/agent-endpoints.example.json" "$STAGE/versions.lock.json"
|
|
(
|
|
cd "$STAGE"
|
|
find . -type f ! -name package.SHA256SUMS -printf '%P\n' | sort | while IFS= read -r file; do
|
|
sha256sum "$file"
|
|
done > package.SHA256SUMS
|
|
)
|
|
tar -C "$STAGE" -czf "$ARCHIVE" .
|
|
(
|
|
cd "$(dirname -- "$ARCHIVE")"
|
|
sha256sum "$(basename -- "$ARCHIVE")" > "$(basename -- "$ARCHIVE").sha256"
|
|
)
|
|
rm -rf -- "$STAGE"
|
|
printf 'package=%s\nchecksum=%s\n' "$ARCHIVE" "$ARCHIVE.sha256"
|