Some checks failed
check / check (push) Failing after 52s
M0–M5 ur doc/plan.md: layer-shell-dock per skärm med transparent #222222-ö, pins + körande appar (gruppering, badges, indikatorer), klick/skroll/mittklick, konfigurerbar högerklicksmeny, tomyta-meny, settings-GUI som redigerar JSON-configen live, filewatcher, Wayfire-IPC-stubbar (scale, flytta-till-skärm), CI + release-flöde. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
57 lines
2.1 KiB
Bash
57 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
|
# Lokalt släppbygge för waydock (körs på brasse-linux01, x64).
|
|
# ./release.sh v0.2.0
|
|
# Taggar, bygger release-binären, skapar Gitea-release med binären som
|
|
# asset och uppdaterar den rullande "latest"-releasen.
|
|
set -euo pipefail
|
|
|
|
TAG="${1:?användning: ./release.sh vX.Y.Z}"
|
|
[[ "$TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "taggen ska vara vX.Y.Z"; exit 1; }
|
|
|
|
OWNER=brasse REPO=waydock
|
|
API=https://gitea.brasse-pc.eu/api/v1
|
|
TOKEN="${GITEA_TOKEN:-$(jq -r .token ~/.config/giteactl/config.json)}"
|
|
BIN=target/release/waydock
|
|
ASSET="waydock-${TAG}-linux-x64"
|
|
|
|
# versionen i Cargo.toml ska matcha taggen
|
|
CARGO_VER=$(grep -m1 '^version' Cargo.toml | cut -d'"' -f2)
|
|
[[ "v$CARGO_VER" == "$TAG" ]] || { echo "Cargo.toml har $CARGO_VER, taggen är $TAG — uppdatera först"; exit 1; }
|
|
|
|
echo "==> bygger $TAG"
|
|
cargo build --release --locked
|
|
cargo test --locked
|
|
|
|
echo "==> taggar + pushar"
|
|
git tag -a "$TAG" -m "waydock $TAG"
|
|
git push origin master "$TAG"
|
|
|
|
api() { # method path [json|@fil]
|
|
local m=$1 p=$2; shift 2
|
|
curl -fsS -X "$m" -H "Authorization: token $TOKEN" "$@" "$API$p"
|
|
}
|
|
|
|
make_release() { # tag namn prerelease
|
|
api POST "/repos/$OWNER/$REPO/releases" \
|
|
-H 'Content-Type: application/json' \
|
|
-d "{\"tag_name\":\"$1\",\"name\":\"$2\",\"body\":\"waydock $TAG — linux-x64.\\n\\nInstallera:\\n\`\`\`\\ncurl -fsSL https://gitea.brasse-pc.eu/brasse/waydock/raw/branch/master/install.sh | sh\\n\`\`\`\"}"
|
|
}
|
|
|
|
upload() { # release-id filnamn
|
|
api POST "/repos/$OWNER/$REPO/releases/$1/assets?name=$2" \
|
|
-F "attachment=@$BIN;filename=$2" > /dev/null
|
|
}
|
|
|
|
echo "==> skapar release $TAG"
|
|
REL_ID=$(make_release "$TAG" "waydock $TAG" | jq .id)
|
|
upload "$REL_ID" "$ASSET"
|
|
|
|
echo "==> uppdaterar rullande latest"
|
|
OLD=$(api GET "/repos/$OWNER/$REPO/releases/tags/latest" 2>/dev/null | jq -r .id) || OLD=""
|
|
[[ -n "$OLD" && "$OLD" != null ]] && api DELETE "/repos/$OWNER/$REPO/releases/$OLD" || true
|
|
git tag -f latest && git push -f origin latest
|
|
LATEST_ID=$(make_release "latest" "waydock latest ($TAG)" | jq .id)
|
|
upload "$LATEST_ID" "waydock-latest-linux-x64"
|
|
|
|
echo "==> klart: https://gitea.brasse-pc.eu/$OWNER/$REPO/releases"
|