Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Continuous Integration for Pharo Smalltalk
Search
newapplesho
January 30, 2016
Programming
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Continuous Integration for Pharo Smalltalk
Continuous Integration for Pharo Smalltalk. Smalltalkと継続的インテグレーション
newapplesho
January 30, 2016
More Decks by newapplesho
See All by newapplesho
OpenRestyについて
newapplesho
0
130
Continuous Integration for Pharo Smalltalk Part 2 (Travis CI)
newapplesho
0
220
今時なウェブ開発をSmalltalkでやってみる?
newapplesho
0
190
Elasticsearch for Pharo Smalltalk
newapplesho
0
170
SourceCode Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
newapplesho
0
160
RUNNING Smalltalk - 実践Smalltalk
newapplesho
0
140
AWS SDK for Smalltalk
newapplesho
0
140
How Smalltalker Works
newapplesho
0
120
愛せよ、さもなくば捨てよ。
newapplesho
0
140
Other Decks in Programming
See All in Programming
OSもどきOS
arkw
0
570
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
170
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
780
CSC307 Lecture 17
javiergs
PRO
0
320
New "Type" system on PicoRuby
pocke
1
930
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
520
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
Vite+ Unified Toolchain for the Web
naokihaba
0
310
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
ふつうのFeature Flag実践入門
irof
7
4k
dRuby over BLE
makicamel
2
340
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Speed Design
sergeychernyshev
33
1.8k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
560
Everyday Curiosity
cassininazir
0
230
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
200
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
160
Designing Powerful Visuals for Engaging Learning
tmiket
1
410
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
420
Building an army of robots
kneath
306
46k
Transcript
SmalltalkͱܧଓతΠϯςάϨʔγϣϯ Continuous Integration for Pharo Smalltalk Sho Yoshida / @newapplesho
SORABITO Inc. 30 October 2015
ຊͷςʔϚ ܧଓతΠϯςάϨʔγϣϯ ϏϧυɺςετͳͲͷఆظతͰ෮Մೳͳ࡞ۀΛࣗಈԽ͠ ܁Γฦ࣮͠ࢪ͢Δ͜ͱͰলྗԽΛਤΔ͜ͱ
ܧଓతΠϯςάϨʔγϣϯͷϝϦοτ ܧଓతσϦόϦʔͷ࣮ݱ ܧଓతʹσϦόϦʔ͢Δ͜ͱͰސ٬ͷՁͷఏڙճΛ૿͢
SmalltalkerͷΈͳ͞ΜͷΞϯέʔτ • ιʔείʔυͲ͏ͬͯཧ͍ͯ͠·͔͢ • imageϏϧυͲ͏͍ͬͯ·͔͢ • ൿͷΠϝʔδ࡞ΓΛ͍ͯ͠·ͤΜ͔ νʔϜ։ൃʹ͍ͭͯߟ͑Α͏
Smalltalkͷιʔείʔυཧʹ͍ͭͯ • ʮ͔Βͳ͍͜ͱSmalltalkʹฉ͚ʯͱ͍͏Smalltalk • ͔ͩΒίϝϯτυΩϡϝϯτΛ͋·Γ͞ͳ͍Smalltalker • υΩϡϝϯτΛݟ͚ͭͯݹ͍ • ҰମͲ͏ͳ͍ͬͯΔΜͩ
ιʔείʔυཧ • Smalltalkͷॲཧܥͨ͘͞Μ͋Γཧํ๏όϥόϥ • Pharo Smalltalkʹ͍ͭͯઆ໌͠·͢ʢԼهదͰ͢ɻ͢Έ·ͤΜʣ 2015 2010ࠒ 2012ࠒ 2014
2002? MetacelloʹΑΔฏఆ FileTreeͷొ Pharo3.0 Released FileTreeඪ४උ Pharo4.0 Released Monticello(MCZ)ͷग़ݱ Squeak Released ύοέʔδͷಋೖ?? 2008 MCZͷීٴͱϦϙδτϦͷཚཱ GitHubͷ౸དྷ 1996? Pharo Released MCZࠞಱ࣌ͷ౸དྷ 2013? SmalltalkHubొʁ Gitग़ݱ 2005? FileTree+GitHubͰͷύοέʔδެ։͕૿͑ͯ͘Δͣ Gitཧئ࣌ʁ GitHub Enterpriseఏڙ։࢝ Smalltalkͱग़ձ͏
PharoͷલͷSqueakͰ • ύοέʔδʢιʔείʔυ܈ʣϑΥʔϚοτͱͯ͠SARܗ͕ࣜ͋ͬͨ • SqueakMapͱ͍͏ΣϒϕʔεͷύοέʔδཧͰΘΕ͍ͯΔ • Ͱ࡞Δͷख࡞ۀͰେม ৄ͘͠Γ͍ͨํʮSqueakࣗ༝ࣗࡏ http://swikis.ddo.jp/squeak/13ʯΛࢀߟʹ͢ΔͱΑ͍Ͱ͠ΐ͏ http://map.squeak.org
Monticelloͷग़ݱ • MCZܗࣜͷύοέʔδϑΝΠϧཧπʔϧ • όʔδϣϯཧՄೳɺࠩ֬ೝ͕Մೳ • ϩʔΧϧσΟϨΫτϦ͓ΑͼFTP, HTTPܦ༝Ͱ֎෦ʹอՄೳ खಈ࡞ͷSARܗࣜΑΓָͰศརɻ Squeakࣗ༝ࣗࡏΛಡΉͱ࣌ͷظײ͕Θ͔Δ
MCZͷීٴͱϦϙδτϦͷཚཱ • MCZීٴ͠Squeak, PharoͰσϑΥϧτͷύοέʔδཧͱͳͬͨ • MCZܗࣜͷϑΝΠϧΛҰൠެ։͢ΔͨΊͷϦϙδτϦαʔόʔ͕ొ • SqueakSource,SqueakSource3ྑSqueakSource͕ཚཱͨ͠ Ͳ͜ʹԿ͕͓͍ͯ͋Δͷ͔ෆ໌ɻ SmalltalkೖऀओཁͳϦϙδτϦΛΒͳ͍ͱ
ཉ͍͠ύοέʔδ͕ݟ͚ͭΒΕͳ͍Մೳੑ͕͋Δɻ ݱࡏ͜ͷղܾ͞Ε͍ͯͳ͍ SmalltalkͩΊࣗຫɹhttp://www.slideshare.net/umejava/smalltalk-38297600
MCZࠞಱ࣌ͷ౸དྷ • MCZܗࣜศརͰ͕͋ͬͨܽଟ͔ͬͨ • ύοέʔδؒͷґଘؔղܾ͕͍͠ʢࣗͷύοέʔδʹೖΕΔߥٕ͕ ͋ͬͨΓώυ͔ͬͨʣ • ॲཧܥɺॲཧܥͷόʔδϣϯΛࢦఆͰ͖ͳ͍ʢʮಈ͚OKʂʯͬͯϊϦɻ ͍͍ͷ͔ʁʣ •
࠷৽Խ৬ਓٕʢʮ͜Εͩʂʯͬͯͳײ͡ͰMCZϑΝΠϧΛखಈϩʔυʣ ࢲֶੜͷࠒSmalltalkΠϝʔδ࡞Γ৬ਓʹͳ͍ͬͯͨ mario https://www.flickr.com/photos/64738468@N00/31049645/
MetacelloʹΑΔฏఆ • MonticelloͷͰ͋ͬͨύοέʔδґଘॲཧܥ͝ͱͷ੍ޚΛՄೳʹ͢Δ γεςϜ • MetacelloͷొʹΑΓύοέʔδґଘͰΤϥʔʹͳΔ͜ͱ͕গͳ͘ͳͬͨ • ͦͯ͠Πϝʔδ࡞Γ৬ਓ৬Λࣦͬͨͣʢ͜Ε͕ग़ͨॳSmalltalkͱແԑͳࣄΛ͍͚ͯͨ͠Ͳwʣ Α͘ݟ͔͚ΔConfigurationOfXX ͕MetacelloΛهड़͢ΔΫϥε
Metacelloͷ͍ํୈ23ճSmalltalkษڧձͷࢿྉΛࢀߟ http://www.smalltalk-users.jp/Home/gao-zhi/dai23kaismalltalkbenkyoukai Always Shootingɹhttps://www.flickr.com/photos/alwaysshooting/15315019007/
GitHubͷ౸དྷ • Metacello͕ొͨ͜͠ΖʹGitHub͕·Γͭͭ͋ͬͨ • ͔͠͠ͳ͕ΒSmalltalkerಠࣗιʔείʔυཧํ๏Λଓ͚ͨ • MetacelloొҎ߱ϓϥΠϕʔτͳϓϩδΣΫτཧ͓Αͼଟਓ։ൃͰ Λ๊͍͑ͯͨ • ͋ͷೣ͕͜Θ͔ͬͨͷ͔͠Εͳ͍
MCZͰͷӡ༻ͷ • MCZܗࣜιʔείʔυΛzipܗࣜͰΞʔΧΠϒͨ͠ͷ • MCZϑΝΠϧͦͷ··ΛGitͰཧͯ͠خ͘͠ͳ͍ • ϓϥΠϕʔτͳϓϩδΣΫτͷ߹SqueakSource͕ඞཁʹͳΔ • ϒϥϯνཧ͕Ͱ͖ͳ͍ •
Pull Request͕͑ͳ͍ • ιʔείʔυΛݟΔͨΊͷSmalltalk͕͍ͭ͋ΔͱݶΒͳ͍
Git͍͍ͨ GitʹಌΕࡾઍཬ GitཧΛಌΕଓ͚ͨSmalltalker flowcomm https://www.flickr.com/photos/flowcomm/4372513286/
FileTreeͷొ ࢀߟࢿྉ: http://www.slideshare.net/esug/of-metacello-git-scripting-and-things FileTreeͱ Monticello repository for directory-based Monticello packages
enabling the use of git, svn, etc. for managing Smalltalk source code. https://github.com/dalehenrich/filetree ΑΓ ιʔείʔυΛgitͰཧ͢ΔͨΊͷ σΟϨΫτϦϕʔεͷιʔείʔυཧπʔϧ ൃݟͨ͠ͱ͖Pharo2.0ʹଈ࠲ʹΠϯετʔϧͨ͠
MCZͩͱɾɾɾ Smalltalk͕ͳ͍ͱݟ͑ͳ͍Α
package class method properties method source FileTreeͩͱ ݟ͑Δͧɺࢲʹݟ͑Δͧ
FileTreeͱGitཧ ݟ͑Δͧɺࢲʹݟ͑Δͧ
FileTreeͷϝϦοτ • ϑΝΠϧϕʔεཧͳͷͰGitͷଞݴޠͷίʔυཧํ๏͕ར༻Մೳ • ϓϥΠϕʔτSqueakSourceͷಋೖ͕ෆཁʹͳΓཧίετݮ • ϒϥϯν͕͑Δ • Pull Request͕͑Δ
• Pharo 3.0͔Βඪ४උ
FileTreeͷ͍ํʢอଘฤʣ • Monticello BrowserΛ։͖ɺอଘ͍ͨ͠ύοέʔδΛબ • [+Repository]ΛΫϦοΫɺ[filetree://]Λબͯ͠อଘ͢ΔσΟϨΫτϦΛબ • Monticelloͱҧ͍όʔδϣϯຖʹιʔείʔυ͕ग़ྗ͞Εͳ͍ͷͰҙ ʢsaveͨ͠Βgit,mercurialͰόʔδϣϯཧΛ͢Δʣ ؆୯Ͱ͢Ͷ
FileTreeͷ͍ํʢಡΈࠐΈฤʣ • ಡΈࠐΉࡍʹBaselineΛ͔ͭͬͯಡΈࠐΉ • BaselineFileTreeͰอଘͨ͠ύοέʔδؒґଘΛهड़ • Metacelloͷ͕ࣝ͋Ε؆୯ʹهड़Մೳ • Metacelloͷbaseline:͚ͩΛऔΓग़͠ͷΛߟ͑ΔͱΘ͔Γ͍͢ BaselineOfXX
͕BaselineΛهड़͢ΔΫϥε
Baselineͷྫ
BaselineΛͬͨಡΈࠐΈ | pathToPackageDirectory | "edit to match the path to
your chosen package directory" pathToPackageDirectory := '/YOUR-GIT-DIRECTORY-PATH/sendgrid-smalltalk/pharo-repository/'. Metacello new baseline: 'SendGrid'; repository: 'filetree://', pathToPackageDirectory; load. SendGrid Smalltalkͷ߹ https://github.com/newapplesho/sendgrid-smalltalk
FileTree + Baseline + Git • BaselineͷίʔυFileTreeͰอଘ͢ΕΧϨϯτϒϥϯνͷιʔείʔυ͕ ಡΈࠐΊΔ • όʔδϣϯཧGitʹͤΕOK
• ϏδωεͳͲͷϓϥΠϕʔτϓϩδΣΫτͷཧʹͱͯศར
FileTreeGitHubαϙʔτ • FileTreeʹGitHubʹެ։͞ΕͨιʔείʔυΛclone͢Δػೳ͋Δ • औಘ͢Διʔείʔυcommitͷࣝผ൪߸ͰࢦఆՄೳ • ConfigurationOfͷversionϝιουʹgithubͷύεΛࢦఆ͢Δ • ར༻͢ΔʹBaselineʹGitཧͷύοέʔδͷґଘؔʹهड़ͯ͠ίϛοτ͢Δ ඞཁ͕͋Δ
• GitHub͔Βclone͢ΔConfigurationOfΛSmalltalkHubͳͲʹެ։͢Εཚཱ࣌ ΓΕΔ
SendGrid Smalltalkͷྫ github://<user>/<project>[:SHA][/<path>] ͱ͍͏ϧʔϧʹͳ͍ͬͯΔ
SendGrid Smalltalkͷྫ github://newapplesho/sendgrid-smalltalk:ce676f2225374264108042c4c734fe116b3c5080/pharo-repository
GitHub͔Βऔಘ͢ΔConfigurationOfΛར༻ github://newapplesho/sendgrid-smalltalk:ce676f2225374264108042c4c734fe116b3c5080/pharo-repository ϩʔΧϧʹGitHubͷιʔείʔυΛऔಘ͢Δ
SendGrid Smalltalkͷྫ ConfigurationOfͷΈSmalltalkHubʹެ։
FileTreeͰͷӡ༻ • ίʔυ͕ࡉׂ͔͘͞Ε͍ͯΔͨΊίʔυϨϏϡʔͣ͠Β͍ • ৗʹproperties.jsonͳͲͷੜ͞ΕΔͨΊϑΝΠϧͷίϯϑϦΫτ͕ൃੜ͠ ͍͢ FileTreeͭΒ͍ɻॿ͚ͯSuper Smalltalker
Stree • കᖒ͞Μ(@umejava)࡞ FileTreeͷ֦ுػೳ • http://smalltalkhub.com/#!/~MasashiUmezawa/STree • CypressͱҟͳΓΫϥε୯ҐͰϑΝΠϧׂ͕͞Ε͍ͯΔ • Ϋϥε୯ҐͷϑΝΠϧग़ྗͰग़ྗॱং͕౷Ұ͞Ε͍ͯΔͨΊίʔυϨϏϡʔ
͕͍͢͠
Streeͷinstallํ๏ Gofer it url: 'http://smalltalkhub.com/mc/MasashiUmezawa/STree/main'; package: 'STree'; load.
FileTreeͱStreeͷൺֱ
FileTreeͱStreeͷൺֱ
builder • Pharo imageΛJenkinsΛ༻͍ͯࣗಈϏϧυ͢Δڥ • Lukas Rengglis࡞ • https://github.com/renggli/builder •
scriptsͷίʔυΛ࣮ߦ͢Δ͜ͱͰimageΛࣗಈϏϧυՄೳ
builderͷ Ͱಈ͔ͳ͍ ߄ͯͳ͍ɻ͍ͭͷ͜ͱ
builder (newapplesho൛) • https://github.com/newapplesho/builder • builderಈ͔ͤΔΑ͏ʹ͢ΔΑ͏ʹมߋ • scriptsϑΝΠϧݫબͨ͠ͷ͚ͩΛcommit • ݱঢ়CentOS
6༻ɺࠓޙUbuntuʹରԠ༧ఆ • ηοτΞοϓΛ؆୯ʹͰ͖ΔγΣϧ४උத SmalltalkͷϦϙδτϦͷղܾΛࢦ͠·͢
builder (newapplesho൛)ͷσΟϨΫτϦߏ • oneclick CentOS 6.5༻Pharo VMΛ֨ೲ • images ࣗಈϏϧυ
• scripts ࣗಈϏϧυͰ࣮ߦ͢ΔίʔυΛ֨ೲ
builderͷ͍ํ • gitίϚϯυͰbuilderΛΫϩʔϯ • builderͷimageʹ࠷৽ͷPharo imageΛ֨ೲ͢Δ • γΣϧ git clone
git://github.com/newapplesho/builder.git build.sh -i [Πϝʔδ໊] -s [script໊] -o [ग़ྗΠϝʔδ໊]
builderσϞ • builderͰϏϧυͯ͠ΈΔ • builderͷ৽نϏϧυΛ࡞Δ • builderͰࣗಈςετΛͯ͠ΈΔ
४උͬͨ ͋͞SmalltalkΛॻ͜͏ paul bica https://www.flickr.com/photos/dexxus/5820866907/