Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Jenkinsおじさんと楽しい連携ツールたち
toshihirock
January 10, 2015
Technology
1
2k
Jenkinsおじさんと楽しい連携ツールたち
Jenkinsユーザーカンファレンス2015東京LT
toshihirock
January 10, 2015
Tweet
Share
More Decks by toshihirock
See All by toshihirock
Lambdaを使ってJawsDaysをHackしてみよう!
toshihirock
2
1.4k
保守、運用で使ってみようLambda!
toshihirock
4
1.6k
CodeDeployを使ったアプリケーションデプロイを考える
toshihirock
0
580
Other Decks in Technology
See All in Technology
plotlyで動くグラフを作る
kosshi
0
710
OCIコンテナサービス関連の技術詳細 /oke-ocir-details
oracle4engineer
PRO
0
750
AI Services 概要 / AI Services overview
oracle4engineer
PRO
0
160
re:Inventで発表があったIoT事例の紹介と考察
kizawa2020
0
120
Airdrop for Open Source Projects
epicsdao
0
270
Stripe / Okta Customer Identity Cloud(旧Auth0) の採用に至った理由 〜モリサワの SaaS 戦略〜
tomuro
0
110
【NGK2023S】 ノードエディタ形式の画像処理ツール「Image-Processing-Node-Editor」
kazuhitotakahashi
0
210
経営統合をきっかけに会社をエンジニアリングした話 / btconjp-2023
carta_engineering
0
100
チケットNFTの仕組み
sbtechnight
0
330
証明書って何だっけ? 〜AWSの中間CA移行に備える〜
minorun365
3
2k
400種類のWeb APIをサポートしているデータパイプラインツールにおけるWeb APIとの共存戦略
cdataj
0
120
オンプレk8sとEKSの並行運用の実際
ch1aki
0
130
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
317
22k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
Navigating Team Friction
lara
176
12k
GraphQLとの向き合い方2022年版
quramy
20
9.8k
We Have a Design System, Now What?
morganepeng
37
5.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
56
2.5k
A Tale of Four Properties
chriscoyier
149
21k
Building Your Own Lightsaber
phodgson
96
4.9k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
13
5.4k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
Making Projects Easy
brettharned
102
4.8k
Docker and Python
trallard
30
1.9k
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͓͡͞Μ୯ಠͰศར͚ͩͲଞ ͷ࿈ܞπʔϧͱΈ߹ΘͤΔͱศར ɾͨͩ͏͚ͩͰͳͯ͘ͻͱ͢Δͱͬ ͱศར ɾϙουΩϟετࠓฉ͖͍ͨ