Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Electron アプリのビルド + 配信自動化
Search
ngs
February 10, 2016
Programming
0
2.7k
Electron アプリのビルド + 配信自動化
#meguroes 2 にて発表させていただいたスライドです。
ngs
February 10, 2016
Tweet
Share
More Decks by ngs
See All by ngs
Mindstorms NXT Playground Book for iPad
ngs
0
1.6k
Hubot を使って日々のルーチンワークをゼロにする
ngs
3
1.5k
IBM Cloud Tools for Swift
ngs
0
420
WWDC 2016
ngs
2
1.2k
CI2Go
ngs
0
770
Oneteam の開発チームが行っている協同のための工夫 v2016-04-13
ngs
0
2.2k
Swift で開発した Web アプリケーションを Amazon EC2 Container Services で運用する
ngs
3
4k
Oneteam の 少人数で複数プロダクトを 開発する技術的な試行錯誤 #eventdots
ngs
2
2.4k
Kaizen Platform での Hubot 活用事例
ngs
7
5k
Other Decks in Programming
See All in Programming
Polars入門
daikikatsuragawa
1
190
業務ツールとして使うPostman
msys75
0
110
MetricKitで予期せぬ終了を検知する話 / Detect unexpected termination with MetricKit
nekowen
1
200
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
180
GitHub Copilotのススメ
marcy731
1
230
『Railsオワコン』と言われる時代に、なぜブルーモ証券はRailsを選ぶのか
free_world21
1
390
新宿ダンジョンを可視化してみた
satoshi7190
3
400
使ってみよう Azure AI Document Intelligence
kosmosebi
2
370
Ruby Pattern Matching
bkuhlmann
0
930
Apache Hive 4 on Treasure Data
ryukobayashi
1
440
Anthropic Cookbook のおすすめレシピ
schroneko
7
1.3k
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
180
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
Optimizing for Happiness
mojombo
370
69k
How GitHub (no longer) Works
holman
305
140k
Done Done
chrislema
178
15k
Designing for humans not robots
tammielis
247
25k
How to train your dragon (web standard)
notwaldorf
75
5.2k
For a Future-Friendly Web
brad_frost
172
9k
Code Reviewing Like a Champion
maltzj
515
39k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
The Language of Interfaces
destraynor
151
23k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
Transcript
Electron ΞϓϦͷ Ϗϧυ + ৴ࣗಈԽ Atsushi Nagase @ngs / http://ja.ngs.io/
https://one-team.com/products/
νʔϜͷڠಉΛαϙʔτ͢ΔαʔϏεΛఏڙ͍ͯ͠·͢ɻ
None
τϐοΫΛ࡞ͯ͠ɺ
ϦΞϧλΠϜʹٞΛੵΈॏͶͯ ࣄΛਐΊ͍ͯ͘ιϑτΣΞͰ͢
Tech Stack Frontend Deploy Backend API Distribute
None
Deploy • docker build -t $TARGET docker • docker push
"${DOCKER_REPO}:${TAG_WEB}-staging-b${CIRCLE_BUILD_NUM}" • npm run asset:sync (to AWS S3) • aws ecs update-service --cluster ${CLUSTER} —service ... • webpack --config config/webpack.config.babel.js • jade src/templates/index.jade --out build ⛏ Build Distribute • electron-packager ./app Oneteam --out build --platform=darwin ... • electron-builder $BUILT --platform=osx --out=$DIR ... • codesign --deep --force --verify --verbose --sign "$identity" "$app" ... • productbuild --component "$APP_PATH" /Applications ... • slack-notify
Deploy • docker build -t $TARGET docker • docker push
"${DOCKER_REPO}:${TAG_WEB}-staging-b${CIRCLE_BUILD_NUM}" • npm run asset:sync (to AWS S3) • aws ecs update-service --cluster ${CLUSTER} —service ... • webpack --config config/webpack.config.babel.js • jade src/templates/index.jade --out build ⛏ Build Distribute • electron-packager ./app Oneteam --out build --platform=darwin ... • electron-builder $BUILT --platform=osx --out=$DIR ... • codesign --deep --force --verify --verbose --sign "$identity" "$app" ... • productbuild --component "$APP_PATH" /Applications ... • slack-notify Darwin!!!1! git add -A build && cd build git push --force $YET_ANOTHER_GIT_REPO $CIRCLE_BRANCH
Setup ূ໌ॻͷಡΈࠐΈ
Setup Homebrew ͰඞཁͳιϑτΣΞͷΠϯετʔϧ
Setup Homebrew ͰඞཁͳιϑτΣΞͷΠϯετʔϧ
Setup Homebrew ͰඞཁͳιϑτΣΞͷΠϯετʔϧ cd /usr/local tar cvfz $CIRCLE_ARTIFACTS/HomebrewCellar.tgz Cellar
#
electron-packager ./app Oneteam \ --out build \ --platform=darwin --arch=x64 \
--version=$ELECTRON_VERSION \ --build-version=$BUILD_NUM \ --app-bundle-id=$BUNDLE_ID_PREFIX.Oneteam \ --app-version=$VERSION \ --asar \ --helper-bundle-id=$BUNDLE_ID_PREFIX.OneteamHelper \ --icon=assets/osx/app.icns \ --overwrite \ --sign 'Developer ID Application: Oneteam Inc. (579B4336F6)' https://github.com/maxogden/electron-packager
electron-builder build/Oneteam-darwin-x64/Oneteam.app \ --platform=osx --out=$DIR --config=packager.json electron-builder build/Oneteam-win32-ia32 \ --platform=win
--out=$DIR --config=packager.json https://github.com/loopline-systems/electron-builder
aws s3 sync dist \ "s3://$S3BUCKET/desktop/${VERSION}/b${BUILD_NUM}" \ --acl public-read curl
-X POST --data-urlencode "payload={ ... }" \ $SLACK_WEBHOOK_URL
TODO
Windows ༻ͷূ໌ॻͷΠϯετʔϧ TODO
TODO Auto Updater ͷઃఆ http://electron.atom.io/docs/v0.36.7/api/auto-updater/
https://one-team.com/ja/recruit/ We're HIRING
ଟँ