Fixa omladdningsloopen + churn; CI/släpp flyttat till x64-byggnoden
Some checks failed
check / check (push) Failing after 1m4s
Some checks failed
check / check (push) Failing after 1m4s
- KRITISKT: notify-watchern reagerade på Access-events, så vår egen läsning av configen triggade ny omladdning i all oändlighet (var 155:e ms). Panelen revs och byggdes om konstant → blinkande hover, klick som aldrig landade. Nu filtreras eventen till riktiga skrivningar (Modify/Create/Remove/Close-Write). - Titeländringar (webbläsare/terminaler) bygger inte längre om UI:t; tooltips slås i stället upp färskt vid hover (query-tooltip), och klick/skroll/menyer agerar på färskt fönster-state vid eventtillfället. - hotspots::rebuild är idempotent (skippar om config+skärmar oförändrade). - Settings: markup-escape i rubriker (Kant & skugga-varningen). - CI: check + release körs på byggnoden brasse-linux01 (runs-on linux-amd64) — waydock byggs BARA för x86_64, aldrig på Pi5:ns arm-runner. Ny release.yaml: vX.Y.Z-tagg bygger x64-binären och laddar upp till Gitea-släppsidan + rullande latest. release.sh är nu bara tagga-och-pusha. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
name: check
|
||||
|
||||
# Kompilerings- och lintvakt på Pi5-runnern (arm64). Bygger inga
|
||||
# artefakter — släpp byggs lokalt på brasse-linux01 via ./release.sh.
|
||||
# Kompilerings- och lintvakt på byggnoden på brasse-linux01 (x64-runnern
|
||||
# med exklusiva labeln linux-amd64). waydock byggs BARA för x86_64 —
|
||||
# aldrig på Pi5:ns arm-runner.
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
@@ -14,7 +15,7 @@ on:
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: linux-amd64
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
101
.gitea/workflows/release.yaml
Normal file
101
.gitea/workflows/release.yaml
Normal file
@@ -0,0 +1,101 @@
|
||||
name: release
|
||||
|
||||
# Släppbygge på byggnoden på brasse-linux01 (x64-runnern, label
|
||||
# linux-amd64). En vX.Y.Z-tagg ger en versionerad release + uppdaterar
|
||||
# rullande "latest". Bara linux-x64 byggs — waydock är en desktopapp
|
||||
# för brasse-linux01, ingen arm-build.
|
||||
on:
|
||||
push:
|
||||
tags: ["v*"]
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tag:
|
||||
description: "Release-tag (lämna tom för 'latest')"
|
||||
required: false
|
||||
|
||||
jobs:
|
||||
build-release:
|
||||
runs-on: linux-amd64
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Bestäm tag
|
||||
id: t
|
||||
run: |
|
||||
case "$GITHUB_REF" in
|
||||
refs/tags/*) T="$GITHUB_REF_NAME" ;;
|
||||
*) T="${{ inputs.tag }}"; [ -z "$T" ] && T="latest" ;;
|
||||
esac
|
||||
echo "tag=$T" >> "$GITHUB_OUTPUT"
|
||||
echo "bygger release: $T"
|
||||
|
||||
- name: Install toolchain + GTK4 deps
|
||||
run: |
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update -qq
|
||||
apt-get install -y -qq curl build-essential pkg-config git jq \
|
||||
libgtk-4-dev meson ninja-build wayland-protocols libwayland-dev
|
||||
if ! apt-get install -y -qq libgtk4-layer-shell-dev; then
|
||||
git clone --depth 1 https://github.com/wmww/gtk4-layer-shell.git /tmp/g4ls
|
||||
meson setup /tmp/g4ls/build /tmp/g4ls \
|
||||
-Dintrospection=false -Dvapi=false -Dexamples=false \
|
||||
-Ddocs=false -Dtests=false
|
||||
ninja -C /tmp/g4ls/build install
|
||||
ldconfig
|
||||
arch_dir=$(gcc -dumpmachine)
|
||||
echo "PKG_CONFIG_PATH=/usr/local/lib/${arch_dir}/pkgconfig:/usr/local/lib/pkgconfig" >> "$GITHUB_ENV"
|
||||
echo "LD_LIBRARY_PATH=/usr/local/lib/${arch_dir}:/usr/local/lib" >> "$GITHUB_ENV"
|
||||
fi
|
||||
curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
|
||||
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
||||
|
||||
- name: Bygg x64-binären
|
||||
run: |
|
||||
cargo build --release --locked
|
||||
cargo test --locked
|
||||
mkdir -p out
|
||||
cp target/release/waydock "out/waydock-${{ steps.t.outputs.tag }}-linux-x64"
|
||||
cp target/release/waydock out/waydock-latest-linux-x64
|
||||
cp install.sh out/install.sh
|
||||
cd out && sha256sum waydock-* install.sh > checksums.txt && ls -la
|
||||
|
||||
- name: Skapa Gitea-release + ladda upp assets
|
||||
env:
|
||||
API: ${{ github.server_url }}/api/v1
|
||||
REPO: ${{ github.repository }}
|
||||
TAG: ${{ steps.t.outputs.tag }}
|
||||
TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
BODY="waydock $TAG — linux-x64. Installera: curl -fsSL https://gitea.brasse-pc.eu/brasse/waydock/raw/branch/master/install.sh | sh"
|
||||
publish() { # $1 = releasetagg, $2... = assetfiler
|
||||
local tag=$1; shift
|
||||
local rid
|
||||
rid=$(curl -s -X POST "$API/repos/$REPO/releases" \
|
||||
-H "Authorization: token $TOKEN" -H 'Content-Type: application/json' \
|
||||
-d "{\"tag_name\":\"$tag\",\"name\":\"waydock $tag\",\"body\":\"$BODY\"}" | jq -r '.id // empty')
|
||||
[ -z "$rid" ] && rid=$(curl -s "$API/repos/$REPO/releases/tags/$tag" \
|
||||
-H "Authorization: token $TOKEN" | jq -r '.id')
|
||||
echo "release $tag -> id $rid"
|
||||
for f in "$@"; do
|
||||
local aid
|
||||
aid=$(curl -s "$API/repos/$REPO/releases/$rid/assets" \
|
||||
-H "Authorization: token $TOKEN" | jq -r ".[] | select(.name==\"$f\") | .id")
|
||||
if [ -n "$aid" ] && [ "$aid" != "null" ]; then
|
||||
curl -s -X DELETE "$API/repos/$REPO/releases/$rid/assets/$aid" \
|
||||
-H "Authorization: token $TOKEN" -o /dev/null
|
||||
fi
|
||||
curl -s -X POST "$API/repos/$REPO/releases/$rid/assets?name=$f" \
|
||||
-H "Authorization: token $TOKEN" -F "attachment=@out/$f" \
|
||||
-o /dev/null -w " $f -> HTTP %{http_code}\n"
|
||||
done
|
||||
}
|
||||
if [ "$TAG" != "latest" ]; then
|
||||
publish "$TAG" "waydock-$TAG-linux-x64" install.sh checksums.txt
|
||||
fi
|
||||
# rullande latest: flytta taggen till HEAD och publicera om
|
||||
git config user.name gitea-actions
|
||||
git config user.email actions@gitea.brasse-pc.eu
|
||||
git tag -f latest
|
||||
git push -f origin latest || echo "kunde inte flytta latest-taggen (fortsätter ändå)"
|
||||
publish latest waydock-latest-linux-x64 install.sh checksums.txt
|
||||
Reference in New Issue
Block a user