Skip to content

Commit 95ca320

Browse files
authored
[200_53] fedora-cd (#3196)
1 parent 70630a8 commit 95ca320

3 files changed

Lines changed: 609 additions & 0 deletions

File tree

.github/workflows/cd-fedora.yml

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
name: CD for Mogan STEM on Fedora
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
manual_version:
7+
description: 'Set version manually (e.g. 1.2.3)'
8+
required: false
9+
default: ''
10+
push:
11+
tags:
12+
- '*'
13+
14+
jobs:
15+
fedora-build:
16+
runs-on: ubuntu-latest
17+
container: fedora:latest
18+
timeout-minutes: 60
19+
20+
env:
21+
APPIMAGE_EXTRACT_AND_RUN: 1
22+
XMAKE_ROOT: y
23+
QT_QPA_PLATFORM: offscreen
24+
25+
steps:
26+
# ==========================================
27+
# 1. 环境准备
28+
# ==========================================
29+
- name: Install Base Tools
30+
run: |
31+
dnf update -y
32+
dnf install -y \
33+
git curl wget unzip p7zip \
34+
gcc gcc-c++ cmake ninja-build python3 \
35+
ca-certificates \
36+
pkgconfig
37+
38+
- uses: actions/checkout@v4
39+
with:
40+
fetch-depth: 1
41+
42+
- uses: xmake-io/github-action-setup-xmake@v1
43+
with:
44+
xmake-version: v2.9.6
45+
46+
- name: Update Xrepo
47+
run: xrepo update-repo
48+
49+
# ==========================================
50+
# 2. 安装编译依赖
51+
# ==========================================
52+
- name: Install Dependencies
53+
run: |
54+
dnf update -y
55+
dnf install -y \
56+
mimalloc-devel \
57+
libgit2-devel \
58+
zlib-devel \
59+
openssl-devel \
60+
libcurl-devel \
61+
freetype-devel \
62+
fontconfig-devel \
63+
libjpeg-turbo-devel \
64+
libpng-devel \
65+
libX11-devel \
66+
dbus-devel glib2-devel mesa-libGL-devel mesa-libEGL-devel \
67+
libxkbcommon-devel harfbuzz-devel \
68+
google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts \
69+
ghostscript \
70+
qt6-qtbase-devel \
71+
qt6-qtsvg-devel \
72+
qt6-qtnetworkauth-devel \
73+
rpm-build \
74+
file \
75+
patchelf \
76+
ibus \
77+
fcitx5-qt6
78+
79+
# ==========================================
80+
# 3. 编译流程
81+
# ==========================================
82+
- name: Config
83+
run: xmake config --yes -vD -m release --policies=build.ccache
84+
85+
- name: Build
86+
run: xmake build -vD stem
87+
88+
# ==========================================
89+
# 4. 确定版本号
90+
# ==========================================
91+
- name: Determine Version
92+
id: get_version
93+
shell: bash
94+
run: |
95+
REF_NAME="${{ github.ref }}"
96+
MANUAL_VER="${{ inputs.manual_version }}"
97+
98+
if [ -n "$MANUAL_VER" ]; then
99+
RAW_VERSION="$MANUAL_VER"
100+
elif [[ "$REF_NAME" == refs/tags/* ]]; then
101+
RAW_VERSION=${REF_NAME#refs/tags/}
102+
RAW_VERSION=${RAW_VERSION//\//}
103+
else
104+
RAW_VERSION=$(date +%Y.%m.%d)
105+
fi
106+
107+
if [[ "$RAW_VERSION" == v* ]]; then
108+
CLEAN_VERSION=${RAW_VERSION#v}
109+
else
110+
CLEAN_VERSION="$RAW_VERSION"
111+
fi
112+
113+
echo "File Name will use: $RAW_VERSION"
114+
echo "Internal Package Version will use: $CLEAN_VERSION"
115+
116+
echo "VERSION_TAG=$RAW_VERSION" >> $GITHUB_ENV
117+
echo "VERSION_NUM=$CLEAN_VERSION" >> $GITHUB_ENV
118+
119+
# ==========================================
120+
# 5. 打包
121+
# ==========================================
122+
- name: Generate RPM Package
123+
run: |
124+
chmod +x packages/fedora/package.sh
125+
126+
export VERSION=${{ env.VERSION_NUM }}
127+
packages/fedora/package.sh
128+
129+
mv ~/rpmbuild/RPMS/x86_64/mogan-stem-*.rpm ./mogan-stem-${{ env.VERSION_TAG }}-fedora-amd64.rpm
130+
131+
# ==========================================
132+
# 6. 上传与发布
133+
# ==========================================
134+
- name: Upload Artifact
135+
uses: actions/upload-artifact@v4
136+
if: ${{ !startsWith(github.ref, 'refs/tags/') }}
137+
with:
138+
name: mogan-stem-fedora-${{ env.VERSION_TAG }}
139+
path: mogan-stem-*-fedora-amd64.rpm
140+
141+
- name: Release
142+
uses: softprops/action-gh-release@v1
143+
if: startsWith(github.ref, 'refs/tags/')
144+
with:
145+
prerelease: true
146+
files: |
147+
mogan-stem-*-fedora-amd64.rpm

devel/200_53.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,24 @@
3030
2. 应用 small-caps 样式(如果有)
3131
3. 中文应正常显示,不应被错误转换或产生警告
3232

33+
## 2026/04/21 添加 Fedora CD 打包工作流
34+
35+
### What
36+
1. 新增 Fedora CD(持续部署)工作流
37+
2. 新增 Fedora 打包脚本
38+
39+
### How
40+
`.github/workflows/cd-fedora.yml` 新增 Fedora CD 工作流
41+
-`fedora:latest` 容器中构建 RPM 包
42+
- 使用 `packages/fedora/package.sh` 执行打包
43+
- 上传构建产物
44+
45+
`packages/fedora/package.sh` 新增 Fedora 打包脚本
46+
- 安装编译依赖和运行依赖
47+
- 编译并安装到临时目录
48+
- 生成 RPM spec 文件
49+
- 构建 RPM 包
50+
3351
## 2026/04/20 修复 Fedora CI
3452

3553
## 2026/04/19 修复 Fedora 平台构建及中文字体识别问题

0 commit comments

Comments
 (0)