Skip to content

Build GStreamer Full Library #2

Build GStreamer Full Library

Build GStreamer Full Library #2

Workflow file for this run

name: Build GStreamer Full Library
on:
workflow_dispatch:
inputs:
release_tag:
description: 'Release tag (e.g., v1.24.0)'
required: true
default: 'v1.24.0'
release_title:
description: 'Release title'
required: true
default: 'GStreamer Full Library Build'
jobs:
build:
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout GStreamer source code
uses: actions/checkout@v4
with:
repository: GStreamer/gstreamer
path: gstreamer-source
# 可选: 指定分支或标签,例如 '1.24'
ref: '${{ inputs.release_tag }}'
- name: Run build inside container
id: build
uses: addnab/docker-run-action@v3
with:
image: waim908/ubuntuarm2404:wlt
options: -v ${{ github.workspace }}:/workspace
run: |
set -e
cd /workspace/gstreamer-source
# 定义 meson 通用参数数组(可根据需要修改)
meson_general_arg=(--prefix=/data/data/com.winlator/files/imagefs/usr --libdir=/data/data/com.winlator/files/imagefs/usr/lib)
echo "meson_general_arg=${meson_general_arg[*]}"
export CFLAGS="-O2 -march=armv8-a -mtune=generic -flto=auto -pipe -ftree-vectorize"
export CXXFLAGS="-O2 -march=armv8-a -mtune=generic -flto=auto -pipe -ftree-vectorize"
export LDFLAGS="-O2 -flto=auto -s"
# 执行 meson 配置
meson setup builddir "${meson_general_arg[@]}" \
-Dgst-full-target-type=shared_library \
-Dintrospection=disabled \
-Dgst-full-libraries=app,video,player \
-Dbase=enabled \
-Dgood=enabled \
-Dbad=enabled \
-Dugly=enabled \
-Dlibav=enabled \
-Dtests=disabled \
-Dexamples=disabled \
-Ddoc=disabled \
-Dges=disabled \
-Dpython=disabled \
-Ddevtools=disabled \
-Drtsp_server=disabled \
-Dlibnice=disabled \
-Dgtk=disabled \
-Dgstreamer:check=disabled \
-Dgstreamer:benchmarks=disabled \
-Dgstreamer:libunwind=disabled \
-Dgstreamer:libdw=disabled \
-Dgstreamer:bash-completion=disabled \
-Dgst-plugins-base:tcp=disabled \
-Dgst-plugins-base:typefind=disabled \
-Dgst-plugins-base:gio=disabled \
-Dgst-plugins-good:cairo=disabled \
-Dgst-plugins-good:gdk-pixbuf=disabled \
-Dgst-plugins-good:oss=disabled \
-Dgst-plugins-good:oss4=disabled \
-Dgst-plugins-good:v4l2=disabled \
-Dgst-plugins-good:aalib=disabled \
-Dgst-plugins-good:jack=disabled \
-Dgst-plugins-good:pulse=enabled \
-Dgst-plugins-good:adaptivedemux2=disabled \
-Dgst-plugins-good:libcaca=disabled \
-Dgst-plugins-good:mpg123=enabled \
-Dgst-plugins-good:multifile=disabled \
-Dgst-plugins-good:rtp=disabled \
-Dgst-plugins-good:rtpmanager=disabled \
-Dgst-plugins-good:rtsp=disabled \
-Dgst-plugins-good:soup=disabled \
-Dgst-plugins-good:udp=disabled \
-Dgst-plugins-base:examples=disabled \
-Dgst-plugins-base:alsa=enabled \
-Dgst-plugins-base:pango=disabled \
-Dgst-plugins-base:x11=enabled \
-Dgst-plugins-base:gl=disabled \
-Dgst-plugins-base:opus=disabled \
-Dgst-plugins-bad:androidmedia=disabled \
-Dgst-plugins-bad:rtmp=disabled \
-Dgst-plugins-bad:shm=disabled \
-Dgst-plugins-bad:zbar=disabled \
-Dgst-plugins-bad:webp=disabled \
-Dgst-plugins-bad:kms=disabled \
-Dgst-plugins-bad:vulkan=disabled \
-Dgst-plugins-bad:dash=disabled \
-Dgst-plugins-bad:analyticsoverlay=disabled \
-Dgst-plugins-bad:nvcodec=disabled \
-Dgst-plugins-bad:uvch264=disabled \
-Dgst-plugins-bad:v4l2codecs=disabled \
-Dgst-plugins-bad:udev=disabled \
-Dgst-plugins-bad:libde265=disabled \
-Dgst-plugins-bad:smoothstreaming=disabled \
-Dgst-plugins-bad:fluidsynth=disabled \
-Dgst-plugins-bad:inter=disabled \
-Dgst-plugins-bad:x11=enabled \
-Dgst-plugins-bad:gl=disabled \
-Dgst-plugins-bad:wayland=disabled \
-Dgst-plugins-bad:openh264=disabled \
-Dgst-plugins-bad:hip=disabled \
-Dgst-plugins-bad:aja=disabled \
-Dgst-plugins-bad:aes=disabled \
-Dgst-plugins-bad:dtls=disabled \
-Dgst-plugins-bad:hls=disabled \
-Dgst-plugins-bad:curl=disabled \
-Dgst-plugins-bad:opus=disabled \
-Dgst-plugins-bad:webrtc=disabled \
-Dgst-plugins-bad:webrtcdsp=disabled \
-Dgst-plugins-bad:debugutils=disabled \
-Dgst-plugins-bad:librfb=disabled \
-Dgst-plugins-bad:rist=disabled \
-Dgst-plugins-bad:rtmp2=disabled \
-Dgst-plugins-bad:rtp=disabled \
-Dgst-plugins-bad:srtp=disabled \
-Dgst-plugins-bad:sdp=disabled \
-Dgst-plugins-bad:tensordecoders=disabled \
-Dgst-plugins-bad:unixfd=disabled \
-Dgst-plugins-bad:cuda-nvmm=disabled \
-Dgst-plugins-bad:fluidsynth=disabled \
-Dgst-plugins-ugly:asfdemux=disabled \
-Dpackage-origin="builtin-https://github.com/Waim908/rootfs-winlator"
# 编译
meson compiel -C builddir
# 安装到临时目录
DESTDIR=/workspace/install meson install -C builddir
# 获取 GStreamer 版本(用于包名)
VERSION=$(grep -Po 'project\(\s*\"gstreamer\"\s*,\s*version\s*:\s*\"\K[^\"]+' meson.build | head -1) \
|| VERSION=$(date +%Y%m%d)
# 打包安装后的文件
cd /workspace
tar czf gstreamer-full-${VERSION}.tar.gz -C install .
# 输出变量供后续步骤使用
echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
echo "ARTIFACT_PATH=/workspace/gstreamer-full-${VERSION}.tar.gz" >> $GITHUB_OUTPUT
- name: Create Release and Upload Artifact
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.event.inputs.release_tag }}
name: ${{ github.event.inputs.release_title }}
files: ${{ steps.build.outputs.ARTIFACT_PATH }}
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}