Continuous Integration: Difference between revisions
No edit summary |
No edit summary |
||
Line 9: | Line 9: | ||
** git hooks, especially post-receive on the server, which triggers when a new push arrives from any client; this is the entry point for CI server builds | ** git hooks, especially post-receive on the server, which triggers when a new push arrives from any client; this is the entry point for CI server builds | ||
* Node.js | * Node.js | ||
** | ** This allows us to write cross-platform CI scripts in a language that is fundamental to web development | ||
** Node.js | ** Base Node.js provides many important cross-platform functions; it is also fundamentally asynchronous | ||
** Use modules and you get command-line support from any path on any platform's shell | |||
* Windows | |||
** window management via AutoHotKey; see various sync ahk scripts for examples | |||
** Powershell; make sure to set it up to get debug output: | |||
$global:DebugPreference = "Continue" | |||
* Ubuntu i3 | |||
** Use i3 scripting to manage windows placement; see various keyboard shortcuts in config file for examples | |||
That is all. And away we go! | That is all. And away we go! | ||
[[File:Ci.png]] | [[File:Ci.png]] |
Revision as of 18:36, 3 November 2015
Goals:
- on code save: automatically build
- on code commit: automatically build, do any custom build steps, run any unit tests, run any end-to-end tests, and report results dynamically
- on app production release: compile artifacts, assist in automatic versioning
Tools:
- git
- use a centralized bare repository as the origin target for all the client development environments; master will be the workhorse branch
- git hooks, especially post-receive on the server, which triggers when a new push arrives from any client; this is the entry point for CI server builds
- Node.js
- This allows us to write cross-platform CI scripts in a language that is fundamental to web development
- Base Node.js provides many important cross-platform functions; it is also fundamentally asynchronous
- Use modules and you get command-line support from any path on any platform's shell
- Windows
- window management via AutoHotKey; see various sync ahk scripts for examples
- Powershell; make sure to set it up to get debug output:
$global:DebugPreference = "Continue"
- Ubuntu i3
- Use i3 scripting to manage windows placement; see various keyboard shortcuts in config file for examples
That is all. And away we go!