ci(lesavka): use prebuilt media test image

This commit is contained in:
Brad Stein 2026-05-19 04:00:11 -03:00
parent 3e8d99f6d7
commit e0027e7929
4 changed files with 39 additions and 57 deletions

56
Jenkinsfile vendored
View File

@ -17,7 +17,7 @@ spec:
node-role.kubernetes.io/worker: "true" node-role.kubernetes.io/worker: "true"
containers: containers:
- name: rust-ci - name: rust-ci
image: rust:1.92-slim-bookworm image: registry.bstein.dev/bstein/lesavka-ci@sha256:db682677e608ca029c0291ea1475ddefd40c5d17897306403278b4266908d0e6
command: ["cat"] command: ["cat"]
tty: true tty: true
env: env:
@ -85,33 +85,6 @@ spec:
container('rust-ci') { container('rust-ci') {
sh ''' sh '''
set -eu set -eu
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
python3 \
build-essential \
curl \
file \
git \
clang \
llvm \
pkg-config \
libssl-dev \
ca-certificates \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-tools \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
protobuf-compiler \
libpango1.0-dev \
libcairo2-dev \
libgdk-pixbuf-2.0-dev \
libgtk-4-dev
rm -rf /var/lib/apt/lists/*
rustup component add rustfmt llvm-tools-preview clippy
git config --global --add safe.directory "$WORKSPACE" git config --global --add safe.directory "$WORKSPACE"
''' '''
} }
@ -127,33 +100,6 @@ spec:
sh ''' sh '''
set -eu set -eu
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
python3 \
build-essential \
curl \
file \
git \
clang \
llvm \
pkg-config \
libssl-dev \
ca-certificates \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-tools \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
protobuf-compiler \
libpango1.0-dev \
libcairo2-dev \
libgdk-pixbuf-2.0-dev \
libgtk-4-dev
rm -rf /var/lib/apt/lists/*
rustup component add rustfmt llvm-tools-preview clippy
git config --global --add safe.directory "$WORKSPACE" git config --global --add safe.directory "$WORKSPACE"
overall_rc=0 overall_rc=0

34
docker/ci.Dockerfile Normal file
View File

@ -0,0 +1,34 @@
FROM rust:1.92-slim-bookworm
LABEL org.opencontainers.image.source="https://scm.bstein.dev/bstein/lesavka"
LABEL org.opencontainers.image.description="Lesavka Jenkins CI toolchain"
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
python3 \
build-essential \
curl \
file \
git \
clang \
llvm \
pkg-config \
libssl-dev \
ca-certificates \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-tools \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
protobuf-compiler \
libpango1.0-dev \
libcairo2-dev \
libgdk-pixbuf-2.0-dev \
libgtk-4-dev \
&& rm -rf /var/lib/apt/lists/*
RUN rustup component add rustfmt llvm-tools-preview clippy \
&& cargo install --locked cargo-llvm-cov

View File

@ -983,7 +983,7 @@
"server/src/bin/lesavka_uvc/coverage_model.rs": { "server/src/bin/lesavka_uvc/coverage_model.rs": {
"clippy_warnings": 0, "clippy_warnings": 0,
"doc_debt": 0, "doc_debt": 0,
"loc": 286 "loc": 288
}, },
"server/src/bin/lesavka_uvc/coverage_startup.rs": { "server/src/bin/lesavka_uvc/coverage_startup.rs": {
"clippy_warnings": 0, "clippy_warnings": 0,

View File

@ -139,8 +139,10 @@ fn pull_reencoded_frame_rgba(
.end_of_stream() .end_of_stream()
.map_err(|err| anyhow::anyhow!("eos failed: {err:?}"))?; .map_err(|err| anyhow::anyhow!("eos failed: {err:?}"))?;
// ARM CI workers can take a while to complete the full 1080p double
// encode/decode probe; the assertion below still verifies the frame.
let sample = appsink let sample = appsink
.try_pull_sample(gst::ClockTime::from_seconds(5)) .try_pull_sample(gst::ClockTime::from_seconds(30))
.ok_or_else(|| anyhow::anyhow!("timed out pulling reencoded frame"))?; .ok_or_else(|| anyhow::anyhow!("timed out pulling reencoded frame"))?;
let caps = sample let caps = sample
.caps() .caps()