chore(mobile): 移除 EEUI 构建链路(迁移至独立 dootask-app 仓库)
配合 dootask-app 仓库接入 Expo + EAS Build(见 docs/migration 的 Phase 6),
主仓库不再承担 iOS/Android 打包,保留前端资源构建即可。
- cmd:
- appbuild/buildapp:从 electron_operate app 改为直接 web_build prod,
构建完成后打印提示去 dootask-app 仓库跑 EAS Build / 同步 assets/web/
- 移除 eeui 命令(docker run kuaifan/eeui-cli)
- electron/build.js:
- 删除 data.id === 'app' 分支(Android local.properties / iOS Version.xcconfig
回写、eeui build 调用)
- 删除 argv 'app' 和 'android-upload' 两个命令
- .github/workflows/publish.yml:
- build-client 矩阵移除 android;同时删除所有 (Android) 条件 steps(Build Js/
Setup JDK/Build App/Upload File/Upload Release)
- 保留 Electron 桌面端(mac / windows)分支
- .github/workflows/ios-publish.yml:整体删除(iOS 移动端构建搬去 dootask-app)
子模块 resources/mobile 的 .gitmodules 条目和目录引用留到 Phase 7 一起清理。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
83
electron/build.js
vendored
83
electron/build.js
vendored
@@ -566,42 +566,9 @@ async function startBuild(data) {
|
||||
indexString = indexString.replace("<!--script-->", `<script type="module" src="./${manifestContent['resources/assets/js/app.js']['file']}"></script>`);
|
||||
fs.writeFileSync(indexFile, indexString, 'utf8');
|
||||
//
|
||||
if (data.id === 'app') {
|
||||
const eeuiDir = path.resolve(__dirname, "../resources/mobile");
|
||||
const eeuiRun = `docker run --rm -v ${eeuiDir}:/work -w /work kuaifan/eeui-cli:0.0.1`
|
||||
const publicDir = path.resolve(__dirname, "../resources/mobile/src/public");
|
||||
fse.removeSync(publicDir)
|
||||
fse.copySync(electronDir, publicDir)
|
||||
if (argv[3] === "publish") {
|
||||
// Android config
|
||||
const gradleFile = path.resolve(eeuiDir, "platforms/android/eeuiApp/local.properties")
|
||||
let gradleResult = fs.existsSync(gradleFile) ? fs.readFileSync(gradleFile, 'utf8') : "";
|
||||
gradleResult = gradleResult.replace(/(versionCode|versionName)\s*=\s*(.+?)(\n|$)/g, '')
|
||||
gradleResult += `versionCode = ${config.codeVerson}\nversionName = ${config.version}\n`
|
||||
fs.writeFileSync(gradleFile, gradleResult, 'utf8')
|
||||
// iOS config
|
||||
const xcconfigFile = path.resolve(eeuiDir, "platforms/ios/eeuiApp/Config/Version.xcconfig")
|
||||
let xcconfigResult = fs.existsSync(xcconfigFile) ? fs.readFileSync(xcconfigFile, 'utf8') : "";
|
||||
xcconfigResult = xcconfigResult.replace(/(VERSION_CODE|VERSION_NAME)\s*=\s*(.+?)(\n|$)/g, '')
|
||||
xcconfigResult += `VERSION_CODE = ${config.codeVerson}\nVERSION_NAME = ${config.version}\n`
|
||||
fs.writeFileSync(xcconfigFile, xcconfigResult, 'utf8')
|
||||
}
|
||||
if (['build', 'publish'].includes(argv[3])) {
|
||||
if (!fs.existsSync(path.resolve(eeuiDir, "node_modules"))) {
|
||||
child_process.execSync(`${eeuiRun} npm install`, {stdio: "inherit", cwd: "resources/mobile"});
|
||||
}
|
||||
child_process.execSync(`${eeuiRun} eeui build --simple`, {stdio: "inherit", cwd: "resources/mobile"});
|
||||
} else {
|
||||
[
|
||||
path.resolve(publicDir, "../../platforms/ios/eeuiApp/bundlejs/eeui/public"),
|
||||
path.resolve(publicDir, "../../platforms/android/eeuiApp/app/src/main/assets/eeui/public"),
|
||||
].some(dir => {
|
||||
fse.removeSync(dir)
|
||||
fse.copySync(electronDir, dir)
|
||||
})
|
||||
}
|
||||
return;
|
||||
}
|
||||
// 注:移动端(data.id === 'app')的 EEUI 打包逻辑已随着迁移到 dootask-app 仓库
|
||||
// 而移除。前端资源现在通过 ./cmd appbuild(= web_build prod)构建到 public/,
|
||||
// 实际的 iOS/Android 打包在 dootask-app 仓库用 EAS Build 执行。
|
||||
const output = `dist/${data.id.replace(/\./g, '-')}/${platform}`
|
||||
// package.json Backup
|
||||
fse.copySync(packageFile, packageBakFile)
|
||||
@@ -697,50 +664,6 @@ if (["dev"].includes(argv[2])) {
|
||||
fs.writeFileSync(devloadCachePath, utils.formatUrl("localhost:" + env.parsed.APP_PORT), 'utf8');
|
||||
child_process.spawn("npx", ["vite", "--", "fromcmd", "electronDev"], {stdio: "inherit"});
|
||||
child_process.spawn("npm", ["run", "start-quiet"], {stdio: "inherit", cwd: "electron"});
|
||||
} else if (["app"].includes(argv[2])) {
|
||||
// 编译前端页面给 App
|
||||
let mobileSrcDir = path.resolve(__dirname, "../resources/mobile");
|
||||
if (!fs.existsSync(mobileSrcDir)) {
|
||||
console.error("resources/mobile 未找到");
|
||||
process.exit()
|
||||
}
|
||||
startBuild({
|
||||
name: 'App',
|
||||
id: 'app',
|
||||
platform: '',
|
||||
url: 'http://public/',
|
||||
configure: {
|
||||
platform: '',
|
||||
archs: [],
|
||||
publish: false,
|
||||
release: true,
|
||||
notarize: false,
|
||||
}
|
||||
})
|
||||
} else if (["android-upload"].includes(argv[2])) {
|
||||
// 上传安卓文件(GitHub Actions)
|
||||
(async () => {
|
||||
const publisher = createPublisher()
|
||||
if (!publisher) {
|
||||
console.error("缺少 UPLOAD_TOKEN 或 UPLOAD_URL 环境变量")
|
||||
process.exit(1)
|
||||
}
|
||||
const releaseDir = path.resolve(__dirname, "../resources/mobile/platforms/android/eeuiApp/app/build/outputs/apk/release");
|
||||
if (!fs.existsSync(releaseDir)) {
|
||||
console.error("发布文件未找到")
|
||||
process.exit(1)
|
||||
}
|
||||
const files = fs.readdirSync(releaseDir)
|
||||
for (const filename of files) {
|
||||
const localFile = path.join(releaseDir, filename)
|
||||
if (/\.apk$/.test(filename) && fs.existsSync(localFile) && fs.statSync(localFile).isFile()) {
|
||||
await publisher.uploadPackage(localFile, { platform: 'android' })
|
||||
}
|
||||
}
|
||||
})().catch(err => {
|
||||
console.error(err.message || err)
|
||||
process.exit(1)
|
||||
})
|
||||
} else if (["release"].includes(argv[2])) {
|
||||
// 通知官网发布完成(GitHub Actions)
|
||||
(async () => {
|
||||
|
||||
Reference in New Issue
Block a user