Skip to content

Commit e303f8a

Browse files
committed
fix(ci): use Rocky 9 for FFmpeg 6+, simplify Alpine FFmpeg
Rocky Linux 9: - Switch from Rocky 8 to Rocky 9 (glibc 2.34 instead of 2.28) - Rocky 8's RPMFusion only has FFmpeg 4.x, project requires 5.0+ - Rocky 9 RPMFusion has FFmpeg 6+ with C++20 support out of box Alpine 3.20: - Use pkgconf instead of pkgconfig (correct Alpine package name) - Simplify to just ffmpeg-dev (pulls in all core dependencies) - Add pkg-config verification step to catch errors early
1 parent 48816a5 commit e303f8a

1 file changed

Lines changed: 16 additions & 30 deletions

File tree

.github/workflows/ci.yml

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
# Runs linting, building, and testing on all supported platforms
33
#
44
# Platforms:
5-
# - Linux x64 glibc (Rocky Linux 8 container)
6-
# - Linux x64 musl (Alpine 3.20 container)
5+
# - Linux x64 glibc (Rocky Linux 9 container - FFmpeg 6+, glibc 2.34)
6+
# - Linux x64 musl (Alpine 3.20 container - FFmpeg 6+, musl libc)
77
# - macOS ARM64 (macos-14 runner)
88
# - macOS x64 (macos-13 runner)
99
#
@@ -62,22 +62,20 @@ jobs:
6262
build-linux-glibc:
6363
name: Linux glibc (Node ${{ matrix.node }})
6464
runs-on: ubuntu-24.04
65-
container: rockylinux:8
65+
container: rockylinux:9
6666
strategy:
6767
matrix:
6868
node: [20, 22]
6969
steps:
7070
- name: Install system dependencies
7171
run: |
72-
# Enable EPEL and CRB (PowerTools) repositories
72+
# Enable EPEL and CRB repositories for FFmpeg
7373
dnf install -y epel-release
74-
dnf config-manager --set-enabled powertools || dnf config-manager --set-enabled crb || true
75-
# Install GCC Toolset 12 for C++20 support (Rocky 8 default GCC is 8.x)
76-
dnf install -y gcc-toolset-12 make python39 git pkgconfig
77-
alternatives --set python3 /usr/bin/python3.9 || true
78-
# Install FFmpeg via RPMFusion (EPEL doesn't have ffmpeg-devel for Rocky 8)
79-
dnf install -y https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm || true
80-
dnf install -y ffmpeg-devel || true
74+
dnf config-manager --set-enabled crb
75+
# Install RPMFusion for FFmpeg 6+ (EPEL has ffmpeg-free but missing some libs)
76+
dnf install -y https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm
77+
# Install build tools and FFmpeg
78+
dnf install -y gcc-c++ make python3 git pkgconfig ffmpeg-devel
8179
8280
- name: Checkout
8381
uses: actions/checkout@v4
@@ -91,10 +89,7 @@ jobs:
9189
run: npm install --omit=optional
9290

9391
- name: Build
94-
run: |
95-
# Enable GCC Toolset 12 for C++20 support
96-
source /opt/rh/gcc-toolset-12/enable
97-
npm run build
92+
run: npm run build
9893

9994
- name: Test
10095
run: npm test
@@ -110,21 +105,12 @@ jobs:
110105
- name: Install system dependencies
111106
run: |
112107
# Install build tools and Node.js
113-
apk add --no-cache build-base python3 pkgconfig git nodejs npm
114-
# Install FFmpeg and all transitive dependencies required by pkg-config
115-
# Alpine's FFmpeg is compiled with many optional features, all need their dev packages
116-
apk add --no-cache \
117-
ffmpeg-dev ffmpeg-libs \
118-
x264-dev x265-dev libvpx-dev opus-dev libvorbis-dev lame-dev \
119-
dav1d-dev aom-dev libtheora-dev libwebp-dev svt-av1-dev rav1e-dev \
120-
libjxl-dev libogg-dev \
121-
harfbuzz-dev fribidi-dev fontconfig-dev freetype-dev libass-dev \
122-
zlib-dev bzip2-dev openssl-dev libxml2-dev \
123-
soxr-dev libdrm-dev \
124-
lilv-dev libplacebo-dev vidstab-dev zeromq-dev zimg-dev \
125-
libva-dev vdpau-dev libX11-dev \
126-
librist-dev srt-dev libssh-dev libbluray-dev openmpt-dev \
127-
onevpl-dev || true
108+
apk add --no-cache build-base python3 pkgconf git nodejs npm
109+
# Install FFmpeg development files - Alpine uses split packages
110+
# ffmpeg-dev pulls in the core libs, ffmpeg-libavcodec etc for runtime
111+
apk add --no-cache ffmpeg-dev
112+
# Verify pkg-config can find FFmpeg
113+
pkg-config --exists libavcodec libavformat libavutil libswscale libswresample libavfilter
128114
129115
- name: Checkout
130116
uses: actions/checkout@v4

0 commit comments

Comments
 (0)