44 workflow_dispatch :
55 inputs :
66 release_tag :
7- description : ' Release tag (e.g., v1.24.0) '
7+ description : ' Release tag'
88 required : true
9- default : ' v1.24.0 '
9+ default : ' 1.28.3 '
1010 release_title :
1111 description : ' Release title'
1212 required : true
@@ -21,137 +21,138 @@ jobs:
2121 with :
2222 repository : GStreamer/gstreamer
2323 path : gstreamer-source
24- # 可选: 指定分支或标签,例如 '1.24'
2524 ref : ' ${{ inputs.release_tag }}'
2625
2726 - name : Run build inside container
2827 id : build
29- uses : addnab/docker-run-action@v3
30- with :
31- image : waim908/ubuntuarm2404:wlt
32- options : -v ${{ github.workspace }}:/workspace
33- run : |
34- set -e
35- cd /workspace/gstreamer-source
28+ run : |
29+ # 生成构建脚本
30+ cat > build_script.sh << 'EOF'
31+ set -e
32+ cd /workspace/gstreamer-source
33+
34+ # 定义 meson 通用参数
35+ export meson_general_arg="--prefix=/data/data/com.winlator/files/imagefs/usr --libdir=/data/data/com.winlator/files/imagefs/usr/lib"
3636
37- # 定义 meson 通用参数数组(可根据需要修改)
38- export meson_general_arg="--prefix=/data/data/com.winlator/files/imagefs/usr --libdir=/data/data/com.winlator/files/imagefs/usr/lib"
37+ export CFLAGS="-O2 -march=armv8-a -mtune=generic -flto=auto -pipe -ftree-vectorize"
38+ export CXXFLAGS="-O2 -march=armv8-a -mtune=generic -flto=auto -pipe -ftree-vectorize"
39+ export LDFLAGS="-O2 -flto=auto -s"
3940
40- export CFLAGS="-O2 -march=armv8-a -mtune=generic -flto=auto -pipe -ftree-vectorize"
41- export CXXFLAGS="-O2 -march=armv8-a -mtune=generic -flto=auto -pipe -ftree-vectorize"
42- export LDFLAGS="-O2 -flto=auto -s"
41+ # 配置
42+ meson setup builddir "$meson_general_arg" \
43+ -Dgst-full-target-type=shared_library \
44+ -Dintrospection=disabled \
45+ -Dgst-full-libraries=app,video,player \
46+ -Dbase=enabled \
47+ -Dgood=enabled \
48+ -Dbad=enabled \
49+ -Dugly=enabled \
50+ -Dlibav=enabled \
51+ -Dtests=disabled \
52+ -Dexamples=disabled \
53+ -Ddoc=disabled \
54+ -Dges=disabled \
55+ -Dpython=disabled \
56+ -Ddevtools=disabled \
57+ -Drtsp_server=disabled \
58+ -Dlibnice=disabled \
59+ -Dgtk=disabled \
60+ -Dgstreamer:check=disabled \
61+ -Dgstreamer:benchmarks=disabled \
62+ -Dgstreamer:libunwind=disabled \
63+ -Dgstreamer:libdw=disabled \
64+ -Dgstreamer:bash-completion=disabled \
65+ -Dgst-plugins-base:tcp=disabled \
66+ -Dgst-plugins-base:typefind=disabled \
67+ -Dgst-plugins-base:gio=disabled \
68+ -Dgst-plugins-good:cairo=disabled \
69+ -Dgst-plugins-good:gdk-pixbuf=disabled \
70+ -Dgst-plugins-good:oss=disabled \
71+ -Dgst-plugins-good:oss4=disabled \
72+ -Dgst-plugins-good:v4l2=disabled \
73+ -Dgst-plugins-good:aalib=disabled \
74+ -Dgst-plugins-good:jack=disabled \
75+ -Dgst-plugins-good:pulse=enabled \
76+ -Dgst-plugins-good:adaptivedemux2=disabled \
77+ -Dgst-plugins-good:libcaca=disabled \
78+ -Dgst-plugins-good:mpg123=enabled \
79+ -Dgst-plugins-good:multifile=disabled \
80+ -Dgst-plugins-good:rtp=disabled \
81+ -Dgst-plugins-good:rtpmanager=disabled \
82+ -Dgst-plugins-good:rtsp=disabled \
83+ -Dgst-plugins-good:soup=disabled \
84+ -Dgst-plugins-good:udp=disabled \
85+ -Dgst-plugins-base:examples=disabled \
86+ -Dgst-plugins-base:alsa=enabled \
87+ -Dgst-plugins-base:pango=disabled \
88+ -Dgst-plugins-base:x11=enabled \
89+ -Dgst-plugins-base:gl=disabled \
90+ -Dgst-plugins-base:opus=disabled \
91+ -Dgst-plugins-bad:androidmedia=disabled \
92+ -Dgst-plugins-bad:rtmp=disabled \
93+ -Dgst-plugins-bad:shm=disabled \
94+ -Dgst-plugins-bad:zbar=disabled \
95+ -Dgst-plugins-bad:webp=disabled \
96+ -Dgst-plugins-bad:kms=disabled \
97+ -Dgst-plugins-bad:vulkan=disabled \
98+ -Dgst-plugins-bad:dash=disabled \
99+ -Dgst-plugins-bad:analyticsoverlay=disabled \
100+ -Dgst-plugins-bad:nvcodec=disabled \
101+ -Dgst-plugins-bad:uvch264=disabled \
102+ -Dgst-plugins-bad:v4l2codecs=disabled \
103+ -Dgst-plugins-bad:udev=disabled \
104+ -Dgst-plugins-bad:libde265=disabled \
105+ -Dgst-plugins-bad:smoothstreaming=disabled \
106+ -Dgst-plugins-bad:fluidsynth=disabled \
107+ -Dgst-plugins-bad:inter=disabled \
108+ -Dgst-plugins-bad:x11=enabled \
109+ -Dgst-plugins-bad:gl=disabled \
110+ -Dgst-plugins-bad:wayland=disabled \
111+ -Dgst-plugins-bad:openh264=disabled \
112+ -Dgst-plugins-bad:hip=disabled \
113+ -Dgst-plugins-bad:aja=disabled \
114+ -Dgst-plugins-bad:aes=disabled \
115+ -Dgst-plugins-bad:dtls=disabled \
116+ -Dgst-plugins-bad:hls=disabled \
117+ -Dgst-plugins-bad:curl=disabled \
118+ -Dgst-plugins-bad:opus=disabled \
119+ -Dgst-plugins-bad:webrtc=disabled \
120+ -Dgst-plugins-bad:webrtcdsp=disabled \
121+ -Dgst-plugins-bad:debugutils=disabled \
122+ -Dgst-plugins-bad:librfb=disabled \
123+ -Dgst-plugins-bad:rist=disabled \
124+ -Dgst-plugins-bad:rtmp2=disabled \
125+ -Dgst-plugins-bad:rtp=disabled \
126+ -Dgst-plugins-bad:srtp=disabled \
127+ -Dgst-plugins-bad:sdp=disabled \
128+ -Dgst-plugins-bad:tensordecoders=disabled \
129+ -Dgst-plugins-bad:unixfd=disabled \
130+ -Dgst-plugins-bad:cuda-nvmm=disabled \
131+ -Dgst-plugins-bad:fluidsynth=disabled \
132+ -Dgst-plugins-ugly:asfdemux=disabled \
133+ -Dpackage-origin="builtin-https://github.com/Waim908/rootfs-winlator"
43134
44- # 执行 meson 配置
45- meson setup builddir "$meson_general_arg" \
46- -Dgst-full-target-type=shared_library \
47- -Dintrospection=disabled \
48- -Dgst-full-libraries=app,video,player \
49- -Dbase=enabled \
50- -Dgood=enabled \
51- -Dbad=enabled \
52- -Dugly=enabled \
53- -Dlibav=enabled \
54- -Dtests=disabled \
55- -Dexamples=disabled \
56- -Ddoc=disabled \
57- -Dges=disabled \
58- -Dpython=disabled \
59- -Ddevtools=disabled \
60- -Drtsp_server=disabled \
61- -Dlibnice=disabled \
62- -Dgtk=disabled \
63- -Dgstreamer:check=disabled \
64- -Dgstreamer:benchmarks=disabled \
65- -Dgstreamer:libunwind=disabled \
66- -Dgstreamer:libdw=disabled \
67- -Dgstreamer:bash-completion=disabled \
68- -Dgst-plugins-base:tcp=disabled \
69- -Dgst-plugins-base:typefind=disabled \
70- -Dgst-plugins-base:gio=disabled \
71- -Dgst-plugins-good:cairo=disabled \
72- -Dgst-plugins-good:gdk-pixbuf=disabled \
73- -Dgst-plugins-good:oss=disabled \
74- -Dgst-plugins-good:oss4=disabled \
75- -Dgst-plugins-good:v4l2=disabled \
76- -Dgst-plugins-good:aalib=disabled \
77- -Dgst-plugins-good:jack=disabled \
78- -Dgst-plugins-good:pulse=enabled \
79- -Dgst-plugins-good:adaptivedemux2=disabled \
80- -Dgst-plugins-good:libcaca=disabled \
81- -Dgst-plugins-good:mpg123=enabled \
82- -Dgst-plugins-good:multifile=disabled \
83- -Dgst-plugins-good:rtp=disabled \
84- -Dgst-plugins-good:rtpmanager=disabled \
85- -Dgst-plugins-good:rtsp=disabled \
86- -Dgst-plugins-good:soup=disabled \
87- -Dgst-plugins-good:udp=disabled \
88- -Dgst-plugins-base:examples=disabled \
89- -Dgst-plugins-base:alsa=enabled \
90- -Dgst-plugins-base:pango=disabled \
91- -Dgst-plugins-base:x11=enabled \
92- -Dgst-plugins-base:gl=disabled \
93- -Dgst-plugins-base:opus=disabled \
94- -Dgst-plugins-bad:androidmedia=disabled \
95- -Dgst-plugins-bad:rtmp=disabled \
96- -Dgst-plugins-bad:shm=disabled \
97- -Dgst-plugins-bad:zbar=disabled \
98- -Dgst-plugins-bad:webp=disabled \
99- -Dgst-plugins-bad:kms=disabled \
100- -Dgst-plugins-bad:vulkan=disabled \
101- -Dgst-plugins-bad:dash=disabled \
102- -Dgst-plugins-bad:analyticsoverlay=disabled \
103- -Dgst-plugins-bad:nvcodec=disabled \
104- -Dgst-plugins-bad:uvch264=disabled \
105- -Dgst-plugins-bad:v4l2codecs=disabled \
106- -Dgst-plugins-bad:udev=disabled \
107- -Dgst-plugins-bad:libde265=disabled \
108- -Dgst-plugins-bad:smoothstreaming=disabled \
109- -Dgst-plugins-bad:fluidsynth=disabled \
110- -Dgst-plugins-bad:inter=disabled \
111- -Dgst-plugins-bad:x11=enabled \
112- -Dgst-plugins-bad:gl=disabled \
113- -Dgst-plugins-bad:wayland=disabled \
114- -Dgst-plugins-bad:openh264=disabled \
115- -Dgst-plugins-bad:hip=disabled \
116- -Dgst-plugins-bad:aja=disabled \
117- -Dgst-plugins-bad:aes=disabled \
118- -Dgst-plugins-bad:dtls=disabled \
119- -Dgst-plugins-bad:hls=disabled \
120- -Dgst-plugins-bad:curl=disabled \
121- -Dgst-plugins-bad:opus=disabled \
122- -Dgst-plugins-bad:webrtc=disabled \
123- -Dgst-plugins-bad:webrtcdsp=disabled \
124- -Dgst-plugins-bad:debugutils=disabled \
125- -Dgst-plugins-bad:librfb=disabled \
126- -Dgst-plugins-bad:rist=disabled \
127- -Dgst-plugins-bad:rtmp2=disabled \
128- -Dgst-plugins-bad:rtp=disabled \
129- -Dgst-plugins-bad:srtp=disabled \
130- -Dgst-plugins-bad:sdp=disabled \
131- -Dgst-plugins-bad:tensordecoders=disabled \
132- -Dgst-plugins-bad:unixfd=disabled \
133- -Dgst-plugins-bad:cuda-nvmm=disabled \
134- -Dgst-plugins-bad:fluidsynth=disabled \
135- -Dgst-plugins-ugly:asfdemux=disabled \
136- -Dpackage-origin="builtin-https://github.com/Waim908/rootfs-winlator"
135+ # 编译
136+ meson compile -C builddir
137137
138- # 编译
139- meson compiel -C builddir
138+ # 安装到临时目录
139+ DESTDIR=/workspace/install meson install -C builddir
140140
141- # 安装到临时目录
142- DESTDIR=/workspace/install meson install -C builddir
141+ # 打包
142+ cd /workspace
143+ tar czf gstreamer-full-${{ github.event.inputs.release_tag }}.tar.gz -C install .
144+ EOF
143145
144- # 获取 GStreamer 版本(用于包名)
145- VERSION=$(grep -Po 'project\(\s*\"gstreamer\"\s*,\s*version\s*:\s*\"\K[^\"]+' meson.build | head -1) \
146- || VERSION=$(date +%Y%m%d)
146+ chmod +x build_script.sh
147147
148- # 打包安装后的文件
149- cd /workspace
150- tar czf gstreamer-full-${VERSION}.tar.gz -C install .
148+ # 运行容器
149+ docker run --rm \
150+ -v ${{ github.workspace }}:/workspace \
151+ waim908/ubuntuarm2404:wlt \
152+ /bin/bash /workspace/build_script.sh
151153
152- # 输出变量供后续步骤使用
153- echo "VERSION=${VERSION}" >> $GITHUB_OUTPUT
154- echo "ARTIFACT_PATH=/workspace/gstreamer-full-${VERSION}.tar.gz" >> $GITHUB_OUTPUT
154+ # 设置输出变量(直接使用 release_tag)
155+ echo "ARTIFACT_PATH=${{ github.workspace }}/gstreamer-full-${{ github.event.inputs.release_tag }}.tar.gz" >> $GITHUB_OUTPUT
155156
156157 - name : Create Release and Upload Artifact
157158 uses : softprops/action-gh-release@v2
0 commit comments