2016-11-24 10 views
6

私はstable,next(早期採用者用)とdev(最新ビルドテスト用)の並列リリースチャネルを導入したいElectronアプリを持っています。電子/電子ビルダーでリリースチャンネルを作成する方法は?

これらはそれぞれブランチを持ち、新機能はdevに最初に表示され、nextに進み、ベータテストを行い、最後にstableに移動します。

私はelectron-builderを使用してこれらのリリースパッケージを作成しています。それぞれ独自の自動アップデートが必要です。新しいnextを公開すると、すべてのユーザーにアップデートが届きます。

私は、アプリケーションを独立させたいと思っています。ユーザーは、2つのチャネルをインストールして、両方を同時に実行することができます。彼らは異なる名前と異なるアイコンを持つでしょう。

ブランチでこれらを手動で設定することはできますが、実際には可能な限り自動化したいと考えています。nextブランチから公開すると、正しい名前、アイコン、ID、アップデータを使用する必要があります間違ったチャンネル。

これを電子または電子ビルダーで行う方法はありますか?

答えて

5

electron-builderで可能です。私はいくつかのビルド構成を持ち、ビルド時に使用するelectron-builderと伝えます。例えば

、以下の設定とファイルconfig/beta.jsonを作成します(それに応じて設定を編集してください)

{ 
    "appId": "com.company.beta", 
    "productName": "App Beta", 
    "directories": { 
    "buildResources": "build/beta" // directory containing your build-specific assets (e.g., beta icons - icon.icns, icon.ico & background.png) 
    }, 
    "mac": { 
    "category": "public.app-category.finance" 
    }, 
    "win": { 
    "target": [ 
     "nsis" 
    ] 
    }, 
    "nsis": { 
    "perMachine": false 
    }, 
    "publish": [ 
    { 
     "provider": "s3", 
     "bucket": "com-app-beta" // dedicated S3 bucket for each build 
    } 
    ], 
} 

そしてnext.jsoncurrent.jsonためconfig/beta.jsonを複製します。 package.json

、(package.jsonの「名前 "の値を上書きする--em.name=app-betaに注意してください)スクリプトを構築する次の行を追加します。展開する準備ができて

{ 
    "scripts": { 
     "build": "build -owl --x64 --config ./config/current.json -p always --em.name=app", 
     "build-beta": "build -owl --x64 --config ./config/beta.json -p always --em.name=app-beta", 
     "build-next": "build -owl --x64 --config ./config/next.json -p always --em.name=app-next" 
    } 
} 

実行、スクリプトの構築:

npm run build-beta 
関連する問題