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
Jenkinsで伺かしてみる
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
matuyuji
April 05, 2013
Technology
5.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Jenkinsで伺かしてみる
SSP(伺か)とその通信プロトコルであるSSTPを用いて、JenkinsからSSPへのビルド失敗時の通知などを行います。
matuyuji
April 05, 2013
More Decks by matuyuji
See All by matuyuji
Emacs × Touch Bar
matuyuji
2
1.9k
ARKit + SceneKitでMinesweeperを作ってみた
matuyuji
1
830
Go + QtでiOS アプリ開発
matuyuji
0
420
@_specialized なお話し
matuyuji
0
520
Xcode Souce Code Extensionを使ってみた
matuyuji
0
450
Codebeatを 試してみた
matuyuji
0
820
React Nativeで UIコンポーネントをつくる
matuyuji
0
1.1k
React Nativeを使ってみた
matuyuji
0
1.4k
SwiftでLens
matuyuji
1
1.1k
Other Decks in Technology
See All in Technology
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
570
FinOps × AIエージェントで実現する コストインシデントの自動調査
oasis1994liveforever
0
100
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
690
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
230
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
4
1.2k
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
100
新規事業を牽引する技術選定 〜フルスタックTypeScript開発の実践事例〜
nullnull
3
380
Agentic ERPをどう設計するか ー 受発注エージェントを動かす、現場の知見と設計思想ー
recerqainc
1
2.2k
個人最適 から 全体最適 へ AI情報共有会・AIギルド・AI-DLC で進める カンリーの組織展開
rfdnxbro
0
2.2k
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
710
On-behalf-of Token exchange with AgentCore Identity
hironobuiga
2
140
10倍の生産性を実現するAI駆動並列エージェントのすべて
kumaiu
4
1.3k
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
830
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Are puppies a ranking factor?
jonoalderson
1
3.5k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
Navigating Team Friction
lara
192
16k
Side Projects
sachag
455
43k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
850
My Coaching Mixtape
mlcsv
0
140
Building AI with AI
inesmontani
PRO
1
1.1k
Transcript
JenkinsͰ ͔ ͯ͠ΈΔ @matuyuji 2013.4.9 ୈ3ճ Jenkinsେࡕษڧձ 134݄5༵ۚ
͓ͬ͞Μͱձ͍ͨ͠ Ϗϧυ͕յΕ·ͨ͠ ͲΕ? (Πϝʔδը૾) ͜ΕͰ͢ ͓͍ͯͨ͠ Ϗϧυ͓͖ͯ͠·͢Ͷ 134݄5༵ۚ
Agenda γεςϜߏ SSP/SSTPʹ͍ͭͯ Jenkins࿈ܞ ͦͷଞ & ·ͱΊ Jenkinsͷ΄ͱΜͲ͋Γ·ͤΜ 134݄5༵ۚ
ࣗݾհ @matuyuji safx-dev.blogspot.jp 134݄5༵ۚ
SSPΞϓϦ ΰʔετ γεςϜߏ 134݄5༵ۚ
σεΫτοϓϚείοτ ِϖϧιφΣΞ Կ͔ɻ(Ծ) → ͔ SAKURA Script Player → SSP
ِྛޝ (Mac OS X 10.6·Ͱ) 134݄5༵ۚ
ΰʔετ Jenkins Hudson 134݄5༵ۚ
γεςϜߏ Jenkins SSP SomeProject NotifyWithSSTP Ghost SSTP Ghost 134݄5༵ۚ
SSTPϓϩτίϧ SakuraεΫϦϓτ SSP/SSTP ʹ͍ͭͯ 134݄5༵ۚ
ΒͤΔ ϙʔτ9801ʹจࣈྻΛૹΓࠐΉ $ cat notify NOTIFY SSTP/1.1 Charset: UTF-8 Sender:
Jenkins-Server Script: \0Ϗϧυʹࣦഊ͠·ͨ͠ɻ\e $ nc 127.0.0.1 9801 < notify SSTP/1.1 200 OK 134݄5༵ۚ
Demo 134݄5༵ۚ
SakuraεΫϦϓτ \0 ϝΠϯΩϟϥΫλΛࢦఆ \1 αϒΩϟϥΫλΛࢦఆ \v ΰʔετΛશ໘ʹҠಈ \w# ΣΠτ \s#
αʔϑΣε ද มߋ \_a[] ΞϯΧʔ࡞ \q[] ࣭࡞ ΄͔ɺͨ͘͞Μ 134݄5༵ۚ
දΛม͑Δ 0: ૉ 1: রΕ 2: ڻ͖ 3: ෆ҆ 4:
མͪࠐΈ 5: ඍসΈ 6: ด͡ 7: ౖΓ 8: ྫྷস 9: রΕౖΓ 134݄5༵ۚ
SSTP IANAͷRegistered Port Numbersʹొ͋Γ sstp-1 7743/tcp Sakura Script Transfer Protocol
sstp-1 7743/udp Sakura Script Transfer Protocol sstp-2 9801/tcp Sakura Script Transfer Protocol-2 sstp-2 9801/udp Sakura Script Transfer Protocol-2 134݄5༵ۚ
Jenkinsͱͷ ࿈ܞ 134݄5༵ۚ
Jenkins → SSP SomeProject NotifyWithSSTP Parameterized Trigger plugin 134݄5༵ۚ
\0\v\s4\f[height,36]...Ϗϧυʹࣦഊ͠·ͨ͠ɻ \w9\s7\![move,300,0,1000,me]\![move,-300,0,1000,me] \s0\1\f[height,24]\ͤɻ\n \_a[${UPSTREAM_BUILD_URL}]${UPSTREAM_JOB_NAME}\_a\e 134݄5༵ۚ
ΰʔετͷߏ MacͰಈ͔͢ ͦͷଞ 134݄5༵ۚ
ΰʔετͷߏ Shiori Event OnBoot OnAITalk Shiori.dll ཬʑ YAYA (C-like) ը૾ͷఆٛ
ணͤସ͑ Ξχϝʔγϣϯ shell ghost 134݄5༵ۚ
MouseDoubleClick_0Head { ! "\1\s[10]\0\s[0] \![execute,http-get,http://127.0.0.1:8080/job/ AlwaysFailed/build?token=foobar] ಄ΛμϒϧΫϦοΫ͞ΕͨͷͰɺϏϧυΛ։࢝͠·͢ɻ\e" } ΠϕϯτఆٛϑΝΠϧʹهड़ Πϕϯτ
$ nc -l 127.0.0.1 8080 GET /job/AlwaysFailed/build?token=foobar HTTP/1.1 Host: 127.0.0.1:8080 User-Agent: SSP/2.2.99 (20130204-14; Windows NT 5.1) Accept-Encoding: gzip,deflate Connection: close Accept-Charset: utf-8,* Accept: text/*,*/* 134݄5༵ۚ
ಠࣗΠϕϯτ OnBuildFailed { "\0\vϏϧυʹࣦഊ͠·ͨ͠ɻ\1ͳΜͱ͔͠Ζ\e" } $ nc 127.0.0.1 9801 <<EOF
NOTIFY SSTP/1.1 Sender: Jenkins-Server Event: OnBuildFailed EOF SSTP/1.1 200 OK ΠϕϯτఆٛϑΝΠϧʹهड़ 134݄5༵ۚ
ڥม MouseDoubleClick_1 { ! "\0ࢲͷ໊લ%selfnameͰ͢ɻ\n ࠓ %month ݄ %day Ͱ͢ɻ\e"
} 134݄5༵ۚ
Mac্ͰSSPΛಈ͔͢ ॳճىಈ࣌ͳͲʹਅͬ ࠇʹͳΔͷΛ͙ JenkinsͷσϑΥϧτγΣϧΛzshʹ͢Δ ($JOB_NAME͕ͳ͔ۭͥʹͳΔରࡦ) എܠΛಁաʹ 134݄5༵ۚ
·ͱΊ 134݄5༵ۚ
·ͱΊ SSPΛར༻ͯ͠JenkinsͷΰʔετΛ࡞ͨ͠ JenkinsͷϏϧυࣦഊΛ௨Ͱ͖ΔΑ͏ʹͨ͠ 134݄5༵ۚ
ࢀߟࢿྉ SSP: http://ssp.shillest.net/ YAYA: http://emily.shillest.net/ayaya/index.php UkaDoc: https://ukadoc.googlecode.com/svn/ trunk/manual/index.html 134݄5༵ۚ
͓͠·͍ 134݄5༵ۚ