Top Banner
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
23

smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

Jan 13, 2017

Download

Software

ESUG
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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

[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

Page 2: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

Page 3: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

Page 4: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

Page 5: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

Page 6: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

Page 7: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

Smalltalk Support on TravisCI

7

Page 8: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

EXAMPLE PROJECT

8

Page 9: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

9

Page 10: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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.

Page 11: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

Example .travis.yml

11

Page 12: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

Seaside On TravisCI

12

Page 13: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

Seaside On TravisCI

13

Page 14: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

Build Failure Example

14

Page 15: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

Projects Using smalltalkCI

15

Page 16: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

FUTURE WORK

16

Page 17: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

Try Out More CI Services

17

GitLab CI

Page 18: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

Add More Smalltalk Images

18

Moose

Cuis Etoys

Page 19: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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)

Page 20: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

Page 21: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

Page 22: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

Page 23: smalltalkCI: A Continuous Integration Framework for Smalltalk Projects

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

smalltalkCI – Paper Presentation – IWST ‘16

Contribute!Questions? Ideas?

23