fix: TypeScript errors + workflow pipeline ordering
CI / test (push) Successful in 1m28s
CI / docker (push) Successful in 1m0s

- Fix hls! null assertions in error handler (TS18047)
- Fix test mock type errors: remove unused errorCall, use (as any) cast
- Pipeline ordering: CD + Pages deploy now run after CI completes (workflow_run: [CI])
- Add GOFLAGS=-mod=mod to playout Docker build for new fsnotify dep
This commit is contained in:
zwitschi committed 2026-08-10 17:29:46 +02:00
1 parent 18459a9811
commit 9178b7b295
5 files changed
+15 -15

No files matched your search

+4 -2
View File
@@ -6,12 +6,14 @@
name: CD
on:
push:
branches: [main]
workflow_run:
workflows: [CI]
types: [completed]
workflow_dispatch:
jobs:
deploy:
if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
runs-on: [ubuntu-latest]
steps:
- name: Checkout code
+4 -2
View File
@@ -1,12 +1,14 @@
name: Deploy to Cloudflare Pages
on:
push:
branches: ["main"]
workflow_run:
workflows: [CI]
types: [completed]
workflow_dispatch: {}
jobs:
deploy:
if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- name: Checkout
+1 -1
View File
@@ -6,7 +6,7 @@ COPY src/go.mod src/go.sum ./
# Download dependencies and build
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux go build -o /playlist-manager ./src/playlist.go
RUN CGO_ENABLED=0 GOOS=linux GOFLAGS=-mod=mod go build -o /playlist-manager ./src/playlist.go
FROM alpine:3.20
+3 -7
View File
@@ -353,13 +353,9 @@ describe("player error recovery", () => {
await main.initPlayerAndChat(async () => ({ default: HlsMock }) as any);
// Find the error handler registered by initPlayerAndChat
const errorCall = HlsMock.mock.results?.[0]?.value?.on?.mock?.calls?.find(
(c: [string, Function]) => c[0] === "hlsError"
);
// Use hlsInstance.on mock calls
const errorHandler = hlsInstance.on.mock.calls.find(
(c: [string, Function]) => c[0] === "hlsError"
);
const errorHandler = (hlsInstance.on as any).mock.calls.find(
(c: any) => c[0] === "hlsError"
) as [string, Function] | undefined;
if (errorHandler) {
const handler = errorHandler[1];
+3 -3
View File
@@ -198,17 +198,17 @@ export async function initPlayerAndChat(loadHlsModule: () => Promise<{ default:
if (playerErrorCount <= 1) {
console.warn("HLS media error, attempting recovery...");
showReconnecting("Recovering...");
hls.recoverMediaError();
hls!.recoverMediaError();
} else {
console.error("HLS media error: recovery failed");
hls.destroy();
hls!.destroy();
showReconnecting("Stream temporarily unavailable");
}
break;
default:
console.error("HLS fatal error:", data.type, data.details);
hls.destroy();
hls!.destroy();
showReconnecting("Stream temporarily unavailable");
break;
}