Build GStreamer Full Library #8
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' | |
| required: true | |
| default: '1.28.3' | |
| 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 | |
| ref: '${{ inputs.release_tag }}' | |
| - name: Run build inside container | |
| id: build | |
| run: | | |
| # 生成构建脚本 | |
| cat > build_script.sh << 'EOF' | |
| set -e | |
| cd /workspace/gstreamer-source | |
| export CFLAGS="-O3 -march=armv8-a -mtune=generic -flto=auto -pipe -ftree-vectorize" | |
| export CXXFLAGS="-O3 -march=armv8-a -mtune=generic -flto=auto -pipe -ftree-vectorize" | |
| export LDFLAGS="-O3 -flto=auto -s" | |
| # 配置 | |
| meson setup builddir --prefix=/data/data/com.winlator/files/imagefs/usr --libdir=/data/data/com.winlator/files/imagefs/usr/lib \ | |
| -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:doc=disabled \ | |
| -Dgst-plugins-base:tcp=disabled \ | |
| -Dgst-plugins-base:typefind=disabled \ | |
| -Dgst-plugins-base:gio=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-plugibs-good:doc=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-bad:doc=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:doc=disabled \ | |
| -Dgst-plugins-ugly:asfdemux=disabled \ | |
| -Dpackage-origin="builtin-https://github.com/Waim908/rootfs-winlator" | |
| # 编译 | |
| meson compile -C builddir | |
| # 安装到临时目录 | |
| DESTDIR=/workspace/install meson install -C builddir | |
| # 打包 | |
| cd /workspace | |
| tar czf gstreamer-full-${{ github.event.inputs.release_tag }}.tar.gz -C install . | |
| EOF | |
| chmod +x build_script.sh | |
| # 运行容器 | |
| docker run --rm \ | |
| -v ${{ github.workspace }}:/workspace \ | |
| waim908/ubuntuarm2404:wlt \ | |
| /bin/bash -x /workspace/build_script.sh | |
| # 设置输出变量(直接使用 release_tag) | |
| echo "ARTIFACT_PATH=${{ github.workspace }}/gstreamer-full-${{ github.event.inputs.release_tag }}.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 }} |