LoOPS_TeamCity.ipynb
359 lines
| 8.4 KiB
| text/plain
|
TextLexer
In [1]:
from traitlets.config.manager import BaseJSONConfigManager
from traitlets.config.manager import BaseJSONConfigManager
path = "/home/jeandet/.jupyter/nbconfig"
cm = BaseJSONConfigManager(config_dir=path)
cm.update("livereveal", {
"theme": "solarized",
"transition": "zoom",
"start_slideshow_at": "selected"
});
TeamCity¶
<center> </center>
TC Overview¶
- A powerful distributed Continuous Integration tool
- Rich plugin ecosystem
- Really customizable system
- Not so complex...
- Mostly written in Java
- Closed source :(
TC Plugins (335 on JetBrains website )¶
- Web Hooks plugin
- AWS S3 Artifact Storage
- Google Cloud Agents
- Docker Cloud
- Debian Package Server
- Slack Build Notifier
Installation as simple as uploading a zip file!
Vocabulary¶
- Agent: where stuff is done
- Build step: the smallest build task subdivision ( example )
- Build config: a collection of build steps ( example )
- VCS root: a mostly a vcs URL + some options ( example )
- Project: a collection of build configs + VCS + settings ( example )
- Build artifact: a file or a folder produced during the build ( example )
LPP goals (What we want)¶
- Being able to build on different OS
- Build inside a clean environment
- Produce compatibility matrices
- Being faster than Travis
- Customize workflow
LPP Setup¶
<center> </center>
Available build agents¶
- Based on Docker cloud plugin
- Virtually anything that runs either inside Docker or VirtualBox(Vagrant)
- Spawn on demand
- For now Windows, Linux(Fedora, Ubuntu), FreeBSD and Mac OSX 10.12.2(Siera)
I want to choose where I get built!¶
Team city introduce the notion of build requirements.
Agents expose parameters(<=> properties). sources
So for each build config ones can declare some requirements that the agent has to match.