build: debian trixie, CI/CD refactor (#107)

* debian trixie

* run tests in docker

* cleanup

* test: reset golden

* test: update golden files

---------

Co-authored-by: cshum <293790+cshum@users.noreply.github.com>
This commit is contained in:
Adrian Shum 2025-08-30 11:38:36 +08:00 committed by GitHub
parent 3d8c391d67
commit 45f9255112
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 40 additions and 131 deletions

View file

@ -1,5 +1,5 @@
ARG GOLANG_VERSION=1.25.0
FROM golang:${GOLANG_VERSION}-bookworm as builder
FROM golang:${GOLANG_VERSION}-trixie as builder
ARG FFMPEG_VERSION=7.1.1
ARG VIPS_VERSION=8.17.1
@ -8,9 +8,8 @@ ARG TARGETARCH
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
ENV MAKEFLAGS="-j8"
# Installs libvips + FFmpeg + required libraries including modern image formats
RUN echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/sources.list.d/backports.list && \
DEBIAN_FRONTEND=noninteractive \
# Installs libvips + FFmpeg + required libraries including modern image formats + ImageMagick
RUN DEBIAN_FRONTEND=noninteractive \
apt-get update && \
apt-get install --no-install-recommends -y \
ca-certificates \
@ -20,10 +19,10 @@ RUN echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/s
libwebp-dev libtiff-dev libexif-dev libxml2-dev libpoppler-glib-dev \
swig libpango1.0-dev libmatio-dev libopenslide-dev libcfitsio-dev libopenjp2-7-dev liblcms2-dev \
libgsf-1-dev libfftw3-dev liborc-0.4-dev librsvg2-dev libimagequant-dev libaom-dev \
libspng-dev libcgif-dev libmagickwand-dev \
libspng-dev libcgif-dev libheif-dev libheif-plugin-x265 libheif-plugin-aomenc libjxl-dev libavif-dev \
libmagickwand-dev \
yasm libx264-dev libx265-dev libnuma-dev libvpx-dev libtheora-dev \
librtmp-dev libvorbis-dev libdav1d-dev && \
apt-get install --no-install-recommends -y -t bookworm-backports libheif-dev libheif-plugin-x265 libheif-plugin-aomenc libjxl-dev && \
cd /tmp && \
curl -fsSLO https://github.com/libvips/libvips/releases/download/v${VIPS_VERSION}/vips-${VIPS_VERSION}.tar.xz && \
tar xf vips-${VIPS_VERSION}.tar.xz && \
@ -75,27 +74,25 @@ RUN go mod download
COPY . .
RUN if [ "$TARGETARCH" = "amd64" ]; then go test ./...; fi
RUN go build -o ${GOPATH}/bin/imagorvideo ./cmd/imagorvideo/main.go
FROM debian:bookworm-slim as runtime
FROM debian:trixie-slim as runtime
LABEL maintainer="adrian@cshum.com"
COPY --from=builder /usr/local/lib /usr/local/lib
COPY --from=builder /etc/ssl/certs /etc/ssl/certs
# Install runtime dependencies including modern image formats and ImageMagick
RUN echo "deb http://deb.debian.org/debian bookworm-backports main" > /etc/apt/sources.list.d/backports.list && \
DEBIAN_FRONTEND=noninteractive \
RUN DEBIAN_FRONTEND=noninteractive \
apt-get update && \
apt-get install --no-install-recommends -y \
procps curl libglib2.0-0 libjpeg62-turbo libpng16-16 libopenexr-3-1-30 \
libwebp7 libwebpmux3 libwebpdemux2 libtiff6 libexif12 libxml2 libpoppler-glib8 \
libpango1.0-0 libmatio11 libopenslide0 libopenjp2-7 libjemalloc2 \
libgsf-1-114 libfftw3-bin liborc-0.4-0 librsvg2-2 libcfitsio10 libimagequant0 libaom3 \
libspng0 libcgif0 libdav1d6 libmagickwand-6.q16-6 \
libx264-dev libx265-dev libnuma-dev libvpx7 libtheora0 libvorbis-dev && \
apt-get install --no-install-recommends -y -t bookworm-backports libheif1 libheif-plugin-x265 libheif-plugin-aomenc libjxl0.7 && \
libwebp7 libwebpmux3 libwebpdemux2 libtiff6 libexif12 libxml2 libpoppler-glib8t64 \
libpango-1.0-0 libmatio13 libopenslide0 libopenjp2-7 libjemalloc2 \
libgsf-1-114 libfftw3-bin liborc-0.4-0 librsvg2-2 libcfitsio10t64 libimagequant0 libaom3 \
libspng0 libcgif0 libheif1 libheif-plugin-x265 libheif-plugin-aomenc libjxl0.11 libavif-dev \
libmagickwand-7.q16-10 \
libdav1d7 libx264-dev libx265-dev libnuma-dev libvpx9 libtheora0 libvorbis-dev && \
ln -s /usr/lib/$(uname -m)-linux-gnu/libjemalloc.so.2 /usr/local/lib/libjemalloc.so && \
apt-get autoremove -y && \
apt-get autoclean && \