Refactor load testing scripts to support Bash and PowerShell
CI / test (push) Successful in 2m50s
CI / docker (push) Successful in 5m12s

- Updated README.md to reflect changes in load testing commands and added usage examples for Bash scripts.
- Converted PowerShell load testing scripts to Bash equivalents for better cross-platform compatibility.
- Added new Bash scripts: run-loadtests.sh, summarize-artillery.sh, and summarize-k6.sh to mirror existing PowerShell functionality.
- Updated admin-api.js and ws-chat.yml for consistency and improved performance metrics reporting.
- Enhanced error handling and output formatting in summary scripts for better readability.
This commit is contained in:
zwitschi committed 2026-09-02 19:47:34 +02:00
1 parent 9f60087a4c
commit 33b6296c5e
82 files changed
+19682 -21133

No files matched your search

+32 -32
View File
@@ -1,33 +1,33 @@
FROM golang:1.25-alpine AS builder
WORKDIR /app
COPY src/ ./src/
COPY src/go.mod src/go.sum ./
# Download dependencies and build
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux GOFLAGS=-mod=mod go build -o /playlist-manager ./src/playlist.go
FROM alpine:3.20
# Install FFmpeg, curl for health checks, and basic tools
RUN apk add --no-cache \
ffmpeg \
curl \
bash
# Set working directory for playout
WORKDIR /app
# Create directories for playlist, media, HLS output, and emergency slate
RUN mkdir -p /app/hls /app/media /app/playlists /app/slate
# Copy the playout start script and the built playlist manager binary
COPY start-playout.sh /app/
# Copy demo data for out-of-the-box playout
COPY demodata/ /app/
# Copy the built playlist manager binary from the builder stage
COPY --from=builder /playlist-manager /app/playlist-manager
# Set execute permissions for the start script and playlist manager binary
RUN chmod +x /app/start-playout.sh /app/playlist-manager
# Expose HLS directory (will be served by nginx)
VOLUME ["/app/hls"]
# Default command runs the playout loop (which calls the Go validator)
FROM golang:1.25-alpine AS builder
WORKDIR /app
COPY src/ ./src/
COPY src/go.mod src/go.sum ./
# Download dependencies and build
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux GOFLAGS=-mod=mod go build -o /playlist-manager ./src/playlist.go
FROM alpine:3.20
# Install FFmpeg, curl for health checks, and basic tools
RUN apk add --no-cache \
ffmpeg \
curl \
bash
# Set working directory for playout
WORKDIR /app
# Create directories for playlist, media, HLS output, and emergency slate
RUN mkdir -p /app/hls /app/media /app/playlists /app/slate
# Copy the playout start script and the built playlist manager binary
COPY start-playout.sh /app/
# Copy demo data for out-of-the-box playout
COPY demodata/ /app/
# Copy the built playlist manager binary from the builder stage
COPY --from=builder /playlist-manager /app/playlist-manager
# Set execute permissions for the start script and playlist manager binary
RUN chmod +x /app/start-playout.sh /app/playlist-manager
# Expose HLS directory (will be served by nginx)
VOLUME ["/app/hls"]
# Default command runs the playout loop (which calls the Go validator)
CMD ["./start-playout.sh"]
@@ -1,3 +1,3 @@
# Linear Void Demo Playlist
file '/app/media/demo1.mp4'
# Linear Void Demo Playlist
file '/app/media/demo1.mp4'
file '/app/media/demo2.mp4'
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+2 -2
View File
@@ -1,2 +1,2 @@
# Linear Void test playlist
# No media entries here
# Linear Void test playlist
# No media entries here
+1 -1
View File
@@ -1 +1 @@
+5 -5
View File
@@ -1,6 +1,6 @@
# Valid entries should still parse
file '/app/media/demo1.mp4'
# Invalid or malformed lines are preserved as literal paths by the parser
not-a-file-entry
# Valid entries should still parse
file '/app/media/demo1.mp4'
# Invalid or malformed lines are preserved as literal paths by the parser
not-a-file-entry
file '/app/media/demo2.mp4'
+1 -1
View File
@@ -1,2 +1,2 @@
file '/app/media/demo1.mp4'
file '/app/media/demo1.mp4'
file '/app/media/demo2.mp4'