CI: Windows build + release on yuuka-windows
tool/package_windows.ps1 builds watch-together-<ver>-windows-x64.zip (same layout as the Linux tarball, libmpv bundled, update.bat and watch-together-server.exe). The release workflow gets a windows job; ci runs the updater tests on Windows. Publishing moves to tool/release_publish.dart (dart: only, no python/bash on Windows), which tolerates both jobs racing to create the release and replaces an asset on re-runs. release.sh writes both asset URLs into the manifest. Windows jobs check out with plain git (the host's cached actions/checkout clone was corrupt). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2c21cfde11
commit
50bcc2e1a2
10 files changed
+342
-21
No files matched your search
+10
-3
@@ -52,7 +52,6 @@ ORIGIN="$(git -C "$ROOT" remote get-url origin)"
|
||||
SERVER="$(echo "$ORIGIN" | sed -E 's#(https?://[^/]+)/.*#\1#')"
|
||||
REPO="$(echo "${ORIGIN%.git}" | sed -E 's#.*[:/]([^/]+/[^/]+)$#\1#')"
|
||||
PROTO="$(sed -n 's/.*protoVersion = \([0-9]*\).*/\1/p' "$ROOT/packages/core/lib/src/constants.dart")"
|
||||
ASSET="watch-together-$VER-linux-x64.tar.gz"
|
||||
if [[ -n "$LATEST" && "$LATEST" != "v$VER" ]]; then
|
||||
NOTES="$(git -C "$ROOT" log "$LATEST..HEAD" --format='- %s' | head -n 20)"
|
||||
else
|
||||
@@ -60,7 +59,7 @@ else
|
||||
fi
|
||||
export MANIFEST_FILE="$ROOT/updates/manifest.json" MANIFEST_VER="$VER" \
|
||||
MANIFEST_PROTO="$PROTO" MANIFEST_NOTES="$NOTES" \
|
||||
MANIFEST_URL="$SERVER/$REPO/releases/download/v$VER/$ASSET"
|
||||
MANIFEST_BASE="$SERVER/$REPO/releases/download/v$VER/watch-together-$VER"
|
||||
python3 - <<'EOF'
|
||||
import json, os
|
||||
path = os.environ['MANIFEST_FILE']
|
||||
@@ -69,10 +68,18 @@ try:
|
||||
manifest = json.load(f)
|
||||
except (FileNotFoundError, ValueError):
|
||||
manifest = {}
|
||||
base = os.environ['MANIFEST_BASE']
|
||||
# Asset names must match tool/package_linux.sh / package_windows.ps1.
|
||||
# `url` stays the Linux tarball for builds that predate `assets` (<= 0.2.1).
|
||||
assets = {
|
||||
'linux-x64': base + '-linux-x64.tar.gz',
|
||||
'windows-x64': base + '-windows-x64.zip',
|
||||
}
|
||||
manifest.update({
|
||||
'version': os.environ['MANIFEST_VER'],
|
||||
'protocol': int(os.environ['MANIFEST_PROTO']),
|
||||
'url': os.environ['MANIFEST_URL'],
|
||||
'url': assets['linux-x64'],
|
||||
'assets': assets,
|
||||
'notes': os.environ['MANIFEST_NOTES'].splitlines()[0] if os.environ['MANIFEST_NOTES'] else '',
|
||||
})
|
||||
manifest.pop('sha256', None)
|
||||
|
||||
Reference in new issue
Block a user