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
toshihirock
January 10, 2015
Technology
1
2.5k
Jenkinsおじさんと楽しい連携ツールたち
Jenkinsユーザーカンファレンス2015東京LT
toshihirock
January 10, 2015
Tweet
Share
More Decks by toshihirock
See All by toshihirock
Lambdaを使ってJawsDaysをHackしてみよう!
toshihirock
2
1.8k
保守、運用で使ってみようLambda!
toshihirock
4
1.8k
CodeDeployを使ったアプリケーションデプロイを考える
toshihirock
0
670
Other Decks in Technology
See All in Technology
SOTA競争から人間を超える画像認識へ
shinya7y
0
630
DSPy入門
tomehirata
6
680
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
2
100
AIがコードを書いてくれるなら、新米エンジニアは何をする? / komekaigi2025
nkzn
13
8.8k
[re:Inent2025事前勉強会(有志で開催)] re:Inventで見つけた人生をちょっと変えるコツ
sh_fk2
1
1k
20251027_findyさん_音声エージェントLT
almondo_event
2
500
頭部ふわふわ浄酔器
uyupun
0
240
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
4
910
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
6
1.4k
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.5k
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
280
AWSが好きすぎて、41歳でエンジニアになり、AAIを経由してAWSパートナー企業に入った話
yama3133
2
200
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Automating Front-end Workflow
addyosmani
1371
200k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Context Engineering - Making Every Token Count
addyosmani
8
320
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
jQuery: Nuts, Bolts and Bling
dougneiner
65
7.9k
What's in a price? How to price your products and services
michaelherold
246
12k
The Cost Of JavaScript in 2023
addyosmani
55
9.1k
The Cult of Friendly URLs
andyhume
79
6.6k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
630
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Transcript
Jenkins͓͡͞Μͱָ͍͠࿈ ܞπʔϧͨͪ +FOLJOTϢʔβʔΧϯϑΝϨϯε౦ژ !UPTIJIJSPDL
ࣗݾհ ɾ@toshihirock ɾ͓٬༷ઌʹͯAndroid։ൃͷ͓ख͍(ओʹ ։ൃڥվળ)Λ͍ͯ͠Δ ɾ͖ͳϙουΩϟετʮRebuildʯͱ ʮϥΠϜελʔӉଟؙͷΟʔΫΤϯυγϟο ϑϧʯ
͢͜ͱ
❤️ loves
❤️
Slack ɾνϟοτΞϓϦ ɾJenkinsͷϏϧυ݁Ռͷ௨Λߦ͏ ɾJenkins Slack pluginΛར༻ͯ͠࿈ܞ
͜Μͳײ͡Ͱදࣔ͞ΕΔ
Կ͔͞Έ͍ͬͯ͠ݴΘΕͨ
ίʔυม͑ͯΈͨ
EmojiͰΜͩ
❤️
Gitlab ɾGitHubͷΫϩʔϯɻCommunityEditionແྉͰ͑ Δ ɾ࣮ࡍʹར༻ͯ͠΄Ͳܦա͍ͯ͠Δ͕΄΅ͳ ͍͑ͯ͘Δ ɾMergeRequest(PullRequestͱ΄΅ಉ͡)Ͱ࣮ࡍʹ MasterʹϚʔδ͢ΔલʹϏϧυɺ੩తղੳɺςετΛ ߦ͏ ɾGitlab Merge
Request Builder PluginΛར༻ͯ͠࿈ܞ
Gitlab-MergeRequest݁Ռ
❤️
deploygate ɾiOS/AndoridΞϓϦͷςετ൛ΞϓϦͷ৴͕ ग़དྷΔ ɾΞϓϦʹରͯ͠ҙͷϝοηʔδΛ༩Ͱ͖Δ ɾgradle-deploygate-pluginΛར༻ͯ͠࿈ܞ (ProxyରԠͯ͠ͳ͔ͬͨͷͰϓϧϦΫͯ͠Ϛʔδ ͯ͠Βͬͨ)
GradleΛͬͯΞϓϦʹରͯ͠Ϗ ϧυ൪߸ ͱίϛοτใΛՃ
Ϗϧυ൪߸ ί ϛοτϝοηʔδ
࠷େݸͷ όʔδϣϯΛཧ
build.grade ʢ https://gist.github.com/toshihirock/ f4a0c96bc4809152d990ʣ
import groovy.json.* ext { jenkinsUrl = 'http://localhost:8080' buildNumber = System.getenv("BUILD_NUMBER");
jobName = System.getenv("JOB_NAME"); println "build number is ${buildNumber}" println "jobName is ${jobName}" } def getJson(url) { println "start getJson $url" def response = new URL(url).text return new JsonSlurper().parseText(response) } def getJenkinsMessage(msg) { def url = "${jenkinsUrl}/job/${jobName}/${buildNumber}/api/json" def items = getJson(url)['changeSet']['items'] items.eachWithIndex() { obj, i -> msg += obj['msg'] + ' ' } return msg }
deploygate { userName = ownerName token = myToken apks {
example { sourceFile = file(“build/outputs/apk/hoge.apk") //Below is optional if(buildNumber != null) { String msg = "B${buildNumber} " message = getJenkinsMessage(msg) } } } }
·ͱΊ ɾJenkins͓͡͞Μ୯ಠͰศར͚ͩͲଞ ͷ࿈ܞπʔϧͱΈ߹ΘͤΔͱศར ɾͨͩ͏͚ͩͰͳͯ͘ͻͱ͢Δͱͬ ͱศར ɾϙουΩϟετࠓฉ͖͍ͨ