smalltalkci: a continuous integration framework for smalltalk projects

23
smalltalkCI A Continuous Integration Framework for Smalltalk Projects Fabio Niephaus Hasso Plattner Institute University of Potsdam, Germany [email protected] Dale Henrichs GemTalk Systems [email protected] Marcel Taeumel Hasso Plattner Institute University of Potsdam, Germany [email protected] Tobias Pape Hasso Plattner Institute University of Potsdam, Germany [email protected] Tim Felgentreff Hasso Plattner Institute University of Potsdam, Germany [email protected] Robert Hirschfeld Hasso Plattner Institute University of Potsdam, Germany [email protected] IWST 2016, Prague, Czech Republic 08/23/2016

Upload: esug

Post on 13-Jan-2017

125 views

Category:

Software


3 download

TRANSCRIPT

smalltalkCIA Continuous Integration Framework for Smalltalk Projects

Fabio NiephausHasso Plattner Institute

University of Potsdam, [email protected]

Dale HenrichsGemTalk Systems

[email protected]

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

Software Architecture Group (www.hpi.uni-potsdam.de/swa) 2006-present

smalltalkCI – Paper Presentation – IWST ‘16

Contribute!Questions? Ideas?

23