Slide 1

Slide 1 text

JenkinsͰ ࢕͔ ͯ͠ΈΔ @matuyuji 2013.4.9 ୈ3ճ Jenkinsେࡕษڧձ 13೥4݄5೔༵ۚ೔

Slide 2

Slide 2 text

͓ͬ͞Μͱձ࿩͍ͨ͠ Ϗϧυ͕յΕ·ͨ͠ ͲΕ? (Πϝʔδը૾) ͜ΕͰ͢ ௚͓͍ͯͨ͠ Ϗϧυ͓͖ͯ͠·͢Ͷ 13೥4݄5೔༵ۚ೔

Slide 3

Slide 3 text

Agenda γεςϜߏ੒ SSP/SSTPʹ͍ͭͯ Jenkins࿈ܞ ͦͷଞ & ·ͱΊ Jenkinsͷ࿩͸΄ͱΜͲ͋Γ·ͤΜ 13೥4݄5೔༵ۚ೔

Slide 4

Slide 4 text

ࣗݾ঺հ @matuyuji safx-dev.blogspot.jp 13೥4݄5೔༵ۚ೔

Slide 5

Slide 5 text

SSPΞϓϦ ΰʔετ γεςϜߏ੒ 13೥4݄5೔༵ۚ೔

Slide 6

Slide 6 text

σεΫτοϓϚείοτ ِϖϧιφ΢ΣΞ Կ͔ɻ(Ծ) → ࢕͔ SAKURA Script Player → SSP ِྛޝ (Mac OS X 10.6·Ͱ) 13೥4݄5೔༵ۚ೔

Slide 7

Slide 7 text

ΰʔετ Jenkins Hudson 13೥4݄5೔༵ۚ೔

Slide 8

Slide 8 text

γεςϜߏ੒ Jenkins SSP SomeProject NotifyWithSSTP Ghost SSTP Ghost 13೥4݄5೔༵ۚ೔

Slide 9

Slide 9 text

SSTPϓϩτίϧ SakuraεΫϦϓτ SSP/SSTP ʹ͍ͭͯ 13೥4݄5೔༵ۚ೔

Slide 10

Slide 10 text

஻ΒͤΔ ϙʔτ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 13೥4݄5೔༵ۚ೔

Slide 11

Slide 11 text

Demo 13೥4݄5೔༵ۚ೔

Slide 12

Slide 12 text

SakuraεΫϦϓτ \0 ϝΠϯΩϟϥΫλΛࢦఆ \1 αϒΩϟϥΫλΛࢦఆ \v ΰʔετΛશ໘ʹҠಈ \w# ΢ΣΠτ \s# αʔϑΣε ද৘ มߋ \_a[] ΞϯΧʔ࡞੒ \q[] ࣭໰࡞੒ ΄͔ɺͨ͘͞Μ 13೥4݄5೔༵ۚ೔

Slide 13

Slide 13 text

ද৘Λม͑Δ 0: ૉ 1: রΕ 2: ڻ͖ 3: ෆ҆ 4: མͪࠐΈ 5: ඍসΈ 6: ໨ด͡ 7: ౖΓ 8: ྫྷস 9: রΕౖΓ 13೥4݄5೔༵ۚ೔

Slide 14

Slide 14 text

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 13೥4݄5೔༵ۚ೔

Slide 15

Slide 15 text

Jenkinsͱͷ ࿈ܞ 13೥4݄5೔༵ۚ೔

Slide 16

Slide 16 text

Jenkins → SSP SomeProject NotifyWithSSTP Parameterized Trigger plugin 13೥4݄5೔༵ۚ೔

Slide 17

Slide 17 text

\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 13೥4݄5೔༵ۚ೔

Slide 18

Slide 18 text

ΰʔετͷߏ੒ MacͰಈ͔͢ ͦͷଞ 13೥4݄5೔༵ۚ೔

Slide 19

Slide 19 text

ΰʔετͷߏ੒ Shiori Event OnBoot OnAITalk Shiori.dll ཬʑ YAYA (C-like) ը૾ͷఆٛ ணͤସ͑ Ξχϝʔγϣϯ shell ghost 13೥4݄5೔༵ۚ೔

Slide 20

Slide 20 text

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/*,*/* 13೥4݄5೔༵ۚ೔

Slide 21

Slide 21 text

ಠࣗΠϕϯτ OnBuildFailed { "\0\vϏϧυʹࣦഊ͠·ͨ͠ɻ\1ͳΜͱ͔͠Ζ\e" } $ nc 127.0.0.1 9801 <

Slide 22

Slide 22 text

؀ڥม਺ MouseDoubleClick_1 { ! "\0ࢲͷ໊લ͸%selfnameͰ͢ɻ\n ࠓ೔͸ %month ݄ %day ೔Ͱ͢ɻ\e" } 13೥4݄5೔༵ۚ೔

Slide 23

Slide 23 text

Mac্ͰSSPΛಈ͔͢ ॳճىಈ࣌ͳͲʹਅͬ ࠇʹͳΔͷΛ๷͙ JenkinsͷσϑΥϧτγΣϧΛzshʹ͢Δ ($JOB_NAME͕ͳ͔ۭͥʹͳΔରࡦ) എܠΛಁաʹ 13೥4݄5೔༵ۚ೔

Slide 24

Slide 24 text

·ͱΊ 13೥4݄5೔༵ۚ೔

Slide 25

Slide 25 text

·ͱΊ SSPΛར༻ͯ͠JenkinsͷΰʔετΛ࡞੒ͨ͠ JenkinsͷϏϧυࣦഊΛ௨஌Ͱ͖ΔΑ͏ʹͨ͠ 13೥4݄5೔༵ۚ೔

Slide 26

Slide 26 text

ࢀߟࢿྉ SSP: http://ssp.shillest.net/ YAYA: http://emily.shillest.net/ayaya/index.php UkaDoc: https://ukadoc.googlecode.com/svn/ trunk/manual/index.html 13೥4݄5೔༵ۚ೔

Slide 27

Slide 27 text

͓͠·͍ 13೥4݄5೔༵ۚ೔