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.4k
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
1.1k
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
410
255オクテットのドメインはツラみがある! / endless-work
rela1470
1
5.5k
ヤフーの1on1
rela1470
0
560
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
530
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
180
What's New in Android 2026
veronikapj
0
250
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.5k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.6k
Cloudflare is Agents
chimame
0
140
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
260
メールのエイリアス機能を履き違えない
isshinfunada
0
220
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.5k
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
540
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
1
720
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
760
Featured
See All Featured
Navigating Team Friction
lara
192
16k
Designing Powerful Visuals for Engaging Learning
tmiket
1
480
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
360
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Navigating Weather and Climate Data
rabernat
0
460
Typedesign – Prime Four
hannesfritz
42
3.1k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Leo the Paperboy
mayatellez
8
2.1k
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/