waydock v0.1: panel, pins, fönstergrupper, menyer, settings-GUI, live-config
Some checks failed
check / check (push) Failing after 52s
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>
This commit is contained in:
56
release.sh
Normal file
56
release.sh
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user