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
circleci小ネタ集 / circleci_tips
Search
Jun Watanabe
May 26, 2016
Programming
2.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
circleci小ネタ集 / circleci_tips
コード改善 meetup #1
http://kaizen.connpass.com/event/31378/
Jun Watanabe
May 26, 2016
More Decks by Jun Watanabe
See All by Jun Watanabe
Jamf Connect ZTNAとMDMで実現! 金融ベンチャーにおける「デバイストラスト」実例と軌跡 / Kyash Device Trust
rela1470
1
2.6k
20分1発勝負! 社内Webツールをライブコーディングするぞ! / Live Coding PHPerKaigi 2025
rela1470
0
37
力技で実現するHR Driven Provisioningとアクセス制御の自動化 / kyash-hr-driven-provisioning
rela1470
0
1.5k
10分(25分)でつくる社内Webツール / howto-oidc-webpage
rela1470
0
180
リーグオブ情シス 第二回 / League of Infosys
rela1470
1
1.5k
Kyashでコーポレートエンジニアを初採用して7ヶ月が経ちましたがお元気ですか / ce-night-kyash
rela1470
4
3.3k
じこしょうかい2019 / rela1470-portfolio-2019
rela1470
0
420
255オクテットのドメインはツラみがある! / endless-work
rela1470
1
5.5k
ヤフーの1on1
rela1470
0
570
Other Decks in Programming
See All in Programming
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
230
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
130
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
620
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
130
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
500
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.8k
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
800
React本体のコードリーディング
high_g_engineer
1
150
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.6k
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
150
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
190
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
332
25k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
A designer walks into a library…
pauljervisheath
211
24k
Bash Introduction
62gerente
615
220k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
300
Unsuck your backbone
ammeep
672
58k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
480
Chasing Engaging Ingredients in Design
codingconduct
0
270
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Paper Plane
katiecoart
PRO
2
53k
Transcript
circleciখωλू 2016/05/26 ίʔυվળ meetup #1 Jun Watanabe
Jun Watanabe @rela1470 • ͪͺʔ6 • ORATTA, Inc Chief Engineer
• http://rela.red/ ʘWe are hiring!ʗ
ίʔυվળͱ͍͑ CIπʔϧ͔ͳ
ઌ݄ɺ ΦϯϓϨJenkins͔Β circleciʹશҠߦ͠·ͨ͠!
https://speakerdeck.com/ rela1470/jenkins-kill
Βͳ͔ͬͨ͜ͱ + ͦͷޙࠔͬͨ͜ͱ ͬͨ͜ͱ
PHP 5.5 PHPUnit GitHub circleci FREE Plan
෩࿊෦(੍ࣾ) िʹ3࣌ؒձٞࣨʹͬͯ ͻͨ͢Βۀվળɾٕज़ௐࠪ ORATTA Frontier TechͷଏশΒ͍͠
ෳGitͷClone
1ϓϩδΣΫτ 5ͭ͘Β͍ͷgitʹ ͔Ε͍ͯΔ
ϓϩδΣΫτͷgitஔྫ multi [multi.git] //ࣗࣾϑϨʔϜϫʔΫ !system ɹ"addon ɹ#ɹ!asuka [asuka.git] //ϓϩδΣΫτຖͷಠ࣮ࣗιʔε ɹ#ɹɹ"master
[asuka-master.git]ɹ//ΞΠςϜͷϚελʔઃఆ ɹ#ɹɹ!web [asuka-web.git]ɹ//ը૾Ի ɹ!lib[lib.git] //ࣗࣾϥΠϒϥϦ
Jenkins Multiple SCMs Plugin
circleciͰͲ͏͢Δ͔
circle.ymlͰؤுΔ
git cloneͯ͠ ࣗͰஔ͠ͳ͓͢ checkout: post: - "git clone -b ${CIRCLE_BRANCH}
[email protected]
:oratta-inc/ multi.git /home/ubuntu/multi" - "git clone -b ${CIRCLE_BRANCH}
[email protected]
:oratta-inc/ lib.git /home/ubuntu/multi/system/lib" - "mkdir /home/ubuntu/multi/system/addon" test: pre: - "cp -a /home/ubuntu/${CIRCLE_PROJECT_REPONAME}/ /home/ubuntu/ multi/system/addon/${CIRCLE_PROJECT_REPONAME}" - "git clone -b ${CIRCLE_BRANCH}
[email protected]
:oratta-inc/ asuka-master.git /home/ubuntu/multi/system/addon/asuka/master"
ݖݶͲ͏ͳͬͯΔͷ?
Deploy keysΛ͏ͱ ֘1ϦϙδτϦͷΈ
user keyʹࠩ͠ସ͑ͯ Ϣʔβʹඥ͍ͨݖݶΛऔಘ
user keyʹࠩ͠ସ͑ͯ Ϣʔβʹඥ͍ͨݖݶΛऔಘ
αϒϞδϡʔϧԽ Ζ͏ͱͯ͠·͢ @ࠓத͘Β͍...
Ϗϧυͷखಈ࣮ߦ
εέδϡʔϧϏϧυ खಈϏϧυ Ͱ͖ͳ͘ͳΔͷ?
͔ͨ͠ʹWebUIͳ͍
RestAPI͕͋Δ!
՝ۚػೳҎ֎શ෦Ͱ͖ΔΑ!
branchΛࢦఆͯ͠ ৽ϏϧυΛߦ͏API curl -X POST https://circleci.com/api/v1/project/:username/:project/ tree/:branch?circle-token=:token
εέδϡʔϧϏϧυ cronͰୟ͘ खಈϏϧυ खͰୟ͘
ΧόϨοδूܭ
ΧόϨοδूܭ͍ͨ͠ දͰݟ͍ͨ
XdebugΛONʹ sed -i 's/^;//' ~/.phpenv/versions/$(phpenv global)/etc/conf.d/ xdebug.ini
--coverage-html Ͱ $CIRCLE_ARTIFACTS ʹग़ྗͨ͠ΒOK
ͻͱ͕ͭ...
None
None
Ϗϧυʹ20
pushͷʹ20ͪ ͕͢͞ʹࠔΔ...
ۚͰԥΔͷ࠷ޙͷखஈ
Ϗϧυ࣌ؒͷॖ
ผʹPush࣌ ຖճΒͳͯ͘ ि1͘Β͍Ͱྑ͍
ҾͰ໌ࣔతʹ ͚ͨ࣌ͩ͠ ΧόϨοδूܭ
͜ΜͳγΣϧεϓϦΫτ ࡞Γ·ͨ͠ test: override: - sh test.sh if [[ -v
RUN_COVERAGE ]] then sed -i 's/^;//' ~/.phpenv/versions/$(phpenv global)/etc/conf.d/ xdebug.ini phpunit -c phpunit.xml --coverage-html=${CIRCLE_ARTIFACTS} else phpunit -c phpunit.xml fi circle.yml test.sh
XdebugΛONʹ͢Δͱ PHPUnit͕ॏ͘ͳΔ
औಘ͢Δ͚࣌ͩ XdebugΛONʹ͢Δ
REST APIͰbuild_parameters Λ༩ͯ͠Ϗϧυ curl -X POST --header "Content-Type: application/json" -d
'{"build_parameters": {"RUN_COVERAGE": "true"}}' https:// circleci.com/api/v1/project/username/reponame/tree/branch?circle- token=hogehoge
݄༵ͷேʹ cronͰճͯ͠·͢
γεςϜ؆ུԽ
͜ΜͳγΣϧεϓϦΫτ ࡞Γ·ͨ͠ test: override: - sh test.sh if [[ -v
RUN_COVERAGE ]] then sed -i 's/^;//' ~/.phpenv/versions/$(phpenv global)/etc/conf.d/ xdebug.ini phpunit -c phpunit.xml --coverage-html=${CIRCLE_ARTIFACTS} else phpunit -c phpunit.xml fi circle.yml test.sh
࣮circle.yml͚ͩͰग़དྷΔ test: override: - | if [[ -v RUN_COVERAGE ]]
then sed -i 's/^;//' ~/.phpenv/versions/$(phpenv global)/etc/ conf.d/xdebug.ini phpunit -c /home/ubuntu/multi/system/addon/$ {CIRCLE_PROJECT_REPONAME}/phpunit.xml -d memory_limit=1024M -- coverage-html=${CIRCLE_ARTIFACTS} else phpunit -c /home/ubuntu/multi/system/addon/$ {CIRCLE_PROJECT_REPONAME}/phpunit.xml -d memory_limit=1024M
yamlͷϒϩοΫελΠϧ վߦΛอଘ | |+ |- վߦΛ֯εϖʔεʹ > >+ >- Πϯσϯτࢦఆ
|1 >1
circle.yml ͚ͩͰग़དྷΔ
1ϑΝΠϧͰ ग़དྷΔͳΒ ͤ
σάϨΔ͜ͱͳ͘ શҠߦग़དྷ·ͨ͠(^o^)
http://connpass.com/event/32338/
ʘWe are hiring!ʗ http://www.oratta.net/