Browse Source

chore(electron-packaging): use correct parameters for electron linux arm64 packaging in ci environment

ddx 4 weeks ago
parent
commit
4b10dbc852
1 changed files with 28 additions and 25 deletions
  1. 28 25
      .build/h5_for_electron.build.linux.arm.js

+ 28 - 25
.build/h5_for_electron.build.linux.arm.js

@@ -4,37 +4,37 @@ const { execSync } = require('child_process');
 const fs = require('fs');
 const path = require('path');
 
-function isCI(){
+function isCI() {
     const isCI = process.env.CI === 'true' || !!process.env.GITHUB_ACTIONS;
     return isCI;
 }
 
 function getGhToken() {
-  // 1. 在 GitHub Actions 里官方会注入 ACTIONS_RUNTIME_TOKEN 或 CI=true
-  const isCI = process.env.CI === 'true' || !!process.env.GITHUB_ACTIONS;
+    // 1. 在 GitHub Actions 里官方会注入 ACTIONS_RUNTIME_TOKEN 或 CI=true
+    const isCI = process.env.CI === 'true' || !!process.env.GITHUB_ACTIONS;
 
-  if (isCI) {
-    console.log(`you are running in ic and the GH_token is ${process.env.GH_TOKEN}`)
-    // CI 环境:直接拿 secret(工作流里必须 env:{GH_TOKEN:${{secrets.GH_TOKEN}}})
-    const token = process.env.GH_TOKEN;
-    if (!token) throw new Error('CI 环境缺少 GH_TOKEN,请检查 workflow yaml');
-    return token;
-  }
+    if (isCI) {
+        console.log(`you are running in ic and the GH_token is ${process.env.GH_TOKEN}`)
+        // CI 环境:直接拿 secret(工作流里必须 env:{GH_TOKEN:${{secrets.GH_TOKEN}}})
+        const token = process.env.GH_TOKEN;
+        if (!token) throw new Error('CI 环境缺少 GH_TOKEN,请检查 workflow yaml');
+        return token;
+    }
 
-  // 2. 本地开发:优先读本地 ~/.gh-token(自己放的),没有再读环境变量,还没有就空
-  try {
-    return readFileSync(join(require('os').homedir(), '.gh-token'), 'utf8').trim();
-  } catch {
-    return process.env.GH_TOKEN || '';
-  }
+    // 2. 本地开发:优先读本地 ~/.gh-token(自己放的),没有再读环境变量,还没有就空
+    try {
+        return readFileSync(join(require('os').homedir(), '.gh-token'), 'utf8').trim();
+    } catch {
+        return process.env.GH_TOKEN || '';
+    }
 }
 
 const TARO_API_URL = 'http://localhost:6001'; // 远程地址,这里写死,要做成部署后可配置
-const TARO_MQTT_URL ='ws://localhost:8083/mqtt';
+const TARO_MQTT_URL = 'ws://localhost:8083/mqtt';
 const rootDir = path.join(__dirname, '..');          // 项目根目录
 
 
-execSync(`npm run build:h5`, { cwd: rootDir, stdio: 'inherit', env: { ...process.env, TARO_API_URL ,TARO_MQTT_URL} }, (error, stdout, stderr) => {
+execSync(`npm run build:h5`, { cwd: rootDir, stdio: 'inherit', env: { ...process.env, TARO_API_URL, TARO_MQTT_URL } }, (error, stdout, stderr) => {
     if (error) {
         console.error(`Error executing command: ${error.message}`);
         return;
@@ -46,10 +46,10 @@ execSync(`npm run build:h5`, { cwd: rootDir, stdio: 'inherit', env: { ...process
     console.log(`Command stdout: ${stdout}`);
 });
 
-function run(cmd,env={}) {
+function run(cmd, env = {}) {
     console.log(`\n>>> ${cmd}`);
     try {
-        execSync(cmd, { stdio: 'inherit', cwd: process.cwd() ,env:env});
+        execSync(cmd, { stdio: 'inherit', cwd: process.cwd(), env: env });
     } catch (e) {
         console.error(`命令失败: ${cmd}`, e.message);
         exit(1);
@@ -65,13 +65,16 @@ try {
     );
     const GH_TOKEN = getGhToken();  // CI/本地 都能拿到合适值
     // run('npm run build:electron:win');
-    const cmd = 'npm run build:electron:linux'+ (isCI()?'  --publish always':'');//ci 环境才使用 publish
+    //ci 环境才使用 publish
+    const cmd = isCI()
+        ? 'npx electron-builder --config electron-builder.json --linux --publish always'
+        : 'npm run build:electron:linux';
     execSync(cmd, {
-    stdio: 'inherit',
-    cwd: process.cwd(),
-    env: { ...process.env, GH_TOKEN }   // 关键:仅追加 token,其他不动
+        stdio: 'inherit',
+        cwd: process.cwd(),
+        env: { ...process.env, GH_TOKEN }   // 关键:仅追加 token,其他不动
     });
-    
+
     console.log('\n✅ 全部构建完成');
 } catch (err) {
     console.error('Failed to execute :', err.message);