smalltalkCI: A Continuous Integration Framework for Smalltalk Projects
Transcript of smalltalkCI: A Continuous Integration Framework for Smalltalk Projects
smalltalkCIA Continuous Integration Framework for Smalltalk Projects
Fabio NiephausHasso Plattner Institute
University of Potsdam, [email protected]
Dale HenrichsGemTalk Systems
Marcel TaeumelHasso Plattner Institute
University of Potsdam, [email protected]
Tobias PapeHasso Plattner Institute
University of Potsdam, [email protected]
Tim FelgentreffHasso Plattner Institute
University of Potsdam, [email protected]
Robert HirschfeldHasso Plattner Institute
University of Potsdam, [email protected]
IWST 2016, Prague, Czech Republic 08/23/2016
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Our Motivation
SWE lectures• Student teams work on a project in Squeak/Smalltalk
• Introduction to:– Version Control Management Systems
– Continuous Integration
2
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
GitHub
• Hosting platform for Git repositories
• Features– Issue tracking– Wiki– Markdown– Pull Requests and Forking– Integrations (e.g. Slack, Trello, ...)– …
3
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
TravisCI• Hosted, distributed continuous integration service for
project hosted at GitHub
• Features– Builds project after each code push– Free for public repositories– Supports a broad range of programming languages
(including Smalltalk) and build environments– Notifications via Email/Slack/IRC/Webhooks/…– Automatic deployment after successful builds– …
4
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Toolchain For Students
5
LocalRepository
RemoteRepository
TravisCIrunning
builderCI
Metacello Package Manager
Squeak Project
FileTree
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Some Design Goals And Decisions• Compatible to different Smalltalk dialects• Fast feedback loop• Lightweight
– Few dependencies– Small bootstrapping code base and total file size
• Reliable– Self-contained (minimum number of external resources)– Perform self-tests (“Eat your own dog food”)– Dedicated config file (similar to Gemfile or package.json)
• Extensible– Easy to add features and support other dialects/environments
• Debuggable– Various debug options– Reproducible builds
6
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Smalltalk Support on TravisCI
7
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
EXAMPLE PROJECT
8
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
9
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Example .smalltalk.ston
10
For full documentation, check out smalltalkCI’s README.md.
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Example .travis.yml
11
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Seaside On TravisCI
12
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Seaside On TravisCI
13
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Build Failure Example
14
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Projects Using smalltalkCI
15
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
FUTURE WORK
16
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Try Out More CI Services
17
GitLab CI
…
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Add More Smalltalk Images
18
Moose
…
Cuis Etoys
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Support for Different VMs
19
SqueakJS RSqueak/VMOpenSmalltalkVM(e.g. latest + stable)
…
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Improve Tooling For Git• Get rid of two-commit workflow• Use metadata-less FileTree by default
20
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Simplify First Steps• Uniform way to load projects from GitHub• One-click tryout in browser via SqueakJS
21
Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present
smalltalkCI – Paper Presentation – IWST ‘16
Conclusion
smalltalkCI…
• makes it easy to CI test Smalltalk projects
• enables easy access to free CI services
• runs locally and provides various debugging options
• is already used by more than 100 projects on GitHub
22