Build GStreamer Full Library #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |