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
200
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
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
えっ!!コードを読まずに開発を!?
hananouchi
0
170
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
390
共通化で考えるべきは、実装より公開する型だった
codeegg
0
180
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
320
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
370
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
460
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
300
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
220
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
140
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.8k
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.4k
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
340
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Making the Leap to Tech Lead
cromwellryan
135
10k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
180
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
Building the Perfect Custom Keyboard
takai
2
810
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
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/