40 lines
1.1 KiB
Bash
Executable file
40 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Bump patch version and release-build for this host. Run by LaunchAgent every 4h.
|
|
set -euo pipefail
|
|
export PATH="/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
cd "$ROOT"
|
|
mkdir -p logs dist
|
|
LOG="$ROOT/logs/build.log"
|
|
exec >>"$LOG" 2>&1
|
|
echo "==== $(date -R) bump-and-build start ===="
|
|
|
|
ver=$(tr -d "[:space:]" < VERSION)
|
|
IFS=. read -r maj min pat <<<"$ver"
|
|
pat=${pat:-0}
|
|
pat=$((pat + 1))
|
|
new="${maj}.${min}.${pat}"
|
|
echo "$new" > VERSION
|
|
echo "version $ver -> $new"
|
|
|
|
rm -rf build
|
|
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
|
|
cmake --build build -j"$(sysctl -n hw.ncpu 2>/dev/null || echo 2)"
|
|
outdir="$ROOT/dist/$new"
|
|
mkdir -p "$outdir"
|
|
cp -f build/openkknd "$outdir/"
|
|
# record
|
|
{
|
|
echo "version=$new"
|
|
echo "built=$(date -R)"
|
|
echo "host=$(hostname)"
|
|
echo "uname=$(uname -a)"
|
|
file "$outdir/openkknd" 2>/dev/null || true
|
|
ls -la "$outdir/openkknd"
|
|
} | tee "$outdir/BUILDINFO.txt"
|
|
|
|
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
|
git add VERSION
|
|
git commit -m "build: release $new (autobuild)" || true
|
|
fi
|
|
echo "==== $(date -R) done $new ===="
|