Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CircleCI の歩き方 / CircleCI #phpstudy
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
TAKAHASHI Kunihiko
February 28, 2018
Technology
290
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CircleCI の歩き方 / CircleCI #phpstudy
第123回PHP勉強会@東京の資料です
TAKAHASHI Kunihiko
February 28, 2018
More Decks by TAKAHASHI Kunihiko
See All by TAKAHASHI Kunihiko
Apache から LiteSpeed に乗り換えてみませんか? / php-conference-japan-2019-track5-hello-litespeed
kunit
1
1.8k
Webアプリケーションエンジニアだった私がホスティング事業に興味を持った理由 / Fukuoka UIJ Turn gmo pepabo
kunit
0
570
アプリケーションエンジニアな私がホスティング業界に来て感じたあれこれ / ChugokuDB Vol27
kunit
0
680
Google App Engine PHP 7.2 を試してみる #phpstudy / google app engine php 7.2
kunit
1
1.1k
独立したコアレイヤパターンをためしてみる / try independent core layer pattern
kunit
3
1.1k
CircleCI 2.0 を使い倒そう / phpcon kansai 2018 circlci docker
kunit
7
2.8k
PHPのバージョンアップについてあれこれ / luncers lunch study 3 php version up
kunit
0
2.3k
CircleCI 2.0 をつかってみよう / CircleCI #phpcondo2017
kunit
0
770
Docker for Mac/Winってどうなの? / #fukuokaphp docker for mac and win
kunit
0
290
Other Decks in Technology
See All in Technology
オブザーバビリティを高める AI エージェント体験を考える / Designing AI Agent Experiences That Enhance Observability
aoto
PRO
2
330
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
580
Essential architectural thinking (revised edition)
ufried
0
110
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
390
自主式軟體工廠
philipz
0
250
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
780
ファミコンでPHPを動かす / PHP on the Famicom side b
tomzoh
0
140
しろおびから始める!ログ活用の第一歩
shumei_ito
0
880
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
210
今こそ知りたいAmplifyGen2
mkdev10
2
160
SREでアラート疲れを 解決しよう!
kairim0
1
220
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
1.1k
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
540
Technical Leadership for Architectural Decision Making
baasie
3
600
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
Navigating Team Friction
lara
192
16k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
300
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The Curious Case for Waylosing
cassininazir
1
560
The browser strikes back
jonoalderson
0
1.8k
Transcript
$JSDMF$* ͷา͖ํ ୈճ1)1ษڧձ!౦ژ LVOJU
ࣗݾհ ✓ !LVOJU ✓ߴڮ ✓OFDPNPSJ--$ ✓ʮ1)1ϚχϡΞϧΛಡ͏ʯQPEDBTU ✓IUUQQIQNBOVBMOFDPNPSJBTJB ✓QIQPOEPD
ຊͷൃදɾɾɾ ✓߃ྫˍ͓ଋʹͳͬͯ·͕͢ɾɾɾ ✓ࠓ͓ࣄͰ͓ੈʹͳ͍ͬͯΔ #"4&͞ΜͰͷܦݧ͕ɺ͔ͳΓੜ͔͞ ͍ͯ·͢ ✓IUUQTUIFCBTFJO ✓ઈࢍ։ൃऀืूதͱͷ͜ͱͰ͢ͷͰɺ ڵຯͷ͋Δํͥͻͥͻ͓͍߹ΘͤΛʂ
ຊͷൃදͷલʹ ✓1)1FS,BJHJ ✓ ✓ࢲ$BLF1)1ͷ*OUFSBDUJWF 3PVOE5BCMFͱ͍͏ͭͷ࢘ձΛ ͠·͢
օ͞Μ$*ճͯ͠·͔͢ʁ ✓KFOLJT ✓ESPOFJP ✓(JU-BC$* ✓5SBWJT$* ✓$JSDMF$* ✓ͦͷଞ
ຊɾɾɾ ✓ൃදλΠτϧ௨Γɺ $JSDMF$*Λ͍͖ͬͯ·͢ ✓$JSDMF$*ʹͱ ͕͋ΓɺࠓΛ ϝΠϯʹ͠·͢
$JSDMF$* ✓6CVOUV͕ೖͬͨ7.্Ͱ֤ϛυϧΣΞΛ-JOVY ίϯςφͱͯ͠ಈ͔ͯ͠ςετΛߦ͏ ✓ϦϙδτϦԼʹDJSDMFZNMͱ͍͏ઃఆϑΝΠϧΛ ஔ ✓σϑΥϧτͷڍಈ͕ܾ·͍ͬͯͯɺͦͷڍಈΛඞཁʹ Ԡ্ͯ͡ॻ͖͍ͯ͘͠ ✓1)1ͷόʔδϣϯͷΓସ͑෦తʹQIQFOW Λ༻͍ͯ͠Δ ✓5SBWJTͷQIQFOWΛ͍ͬͯΔͷͰɺQIQFOW
ҙ֎ͱ$*αʔϏεͰΘΕ͍ͯΔ
$JSDMF$*ͷਏ͍ͱ͜Ζ ✓σϑΥϧτͰೖ͍ͬͯΔQIQFOWʹೖͬͯͳ ͍֦ு͕͋Δ߹ɺͦͷ֦ுͷCVJMEΒͳ͍ ͱߦ͚ͳ͍ ✓UJNFDPQ֦ுͱ͔ ✓SVOLJU֦ுͱ͔ ✓ͦͷଞɺಛघͳϛυϧΣΞΛςετͰ͏߹ ɺͦΕͷCVJMEΛຖճδϣϒ࣮ߦͷҰͱͯ͠ߦ Θͳ͍ͱ͍͚ͳ͍ ✓$*͕࣌ؒ͘ͳΔ
$JSDMF$*ͷਏ͍ͱ͜Ζ ✓ݱ࣌ͰҰ൪ͭΒ͍ͷ ✓ʹͷػೳఏ ڙऴྃ͢Δ ✓IUUQTDJSDMFDJDPNTVOTFU ✓ͦΕ·ͰʹʹҠߦ͠ͳ͚Ε ͳΒͳ͍
EFNP
$JSDMF$* ✓ʹ("ʹͳͬͨ ✓͔ΒͣͬͱЌΛ͍ͬͯͨ ✓ϦϙδτϦԼʹDJSDMFDJ DPOpHZNMͱ͍͏ઃఆϑΝΠϧΛஔ ✓%PDLFSϕʔεͷ࣮ߦ͕ਪͱͳͬͨ ✓ಉ༷ͷ7.ϕʔεͷ࣮ߦ·ͩ Մೳ
$JSDMF$* ✓%PDLFSJNBHFΛ͏ͨΊɺඍົʹ %PDLFSͷ͕ࣝ͋ͬͨ΄͏͕ཧղ͕ਐΉ ✓7.ϕʔεͷ࣮ߦڥఏڙ͞Ε͍ͯΔ͕ক དྷతʹϓϥεΞϧϑΝͷ՝ۚରʹͳΔͱ༧ࠂ ͞Ε͍ͯΔ $JSDMF$*తʹ%PDLFSϕʔε ʹҠߦͯ͠ཉ͕ͬͯ͠ΔΜͩͱࢥ͏ ✓࠷ۙ%PDLFSΛ։ൃڥͱͯ͠͏͜ͱ
;͖͑ͯͯΔ͔Βɺ͜ΕΛػձʹ%PDLFS͝ͱ ֶश͢Δͷ͕͍͍͔
$JSDMF$* ✓ҎԼͷΑ͏ͳڍಈͱͳΔ %PDLFSΛ͔ͭͬͨͷ ✓%PDLFS)VCͷ3FHJTUSZαʔϏε͔Β %PDLFSJNBHFΛऔಘ͠ɺίϯςφىಈ ✓͜͜Ҏ߱ͦͷ%PDLFSJNBHFΛͱʹىಈ͠ ͨίϯςφͷಈ࡞ͱͳΔ ✓HJUIVC͔ΒιʔεΛDMPOF ✓DPNQPTFSJOTUBMMͷςετͷલ४උ
✓QIQVOJUΛͬͯςετ ✓݁ՌΛTMBDLͱ࿈ܞͯ͠௨
$JSDMF$* ✓ઃఆϑΝΠϧɺϦϙδτϦͷτο ϓʹDJSDMFDJͱ͍͏σΟϨΫτ ϦΛ࡞ΓɺͦͷதʹDPOpHZNM ͱ͍͏ϑΝΠϧΛஔ͘ͱͦΕΛͬ ͯ$*͕࣮ߦ͞ΕΔ ✓DPOpHZNMͷॻ͖ํΛ؆୯ʹ આ໌͍͖ͯ͠·͢
DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers working_directory:
/var/www/html steps: - checkout - restore_cache: keys: - composer-{{ arch }}—{{ checksum "composer.lock" }} - composer-{{ arch }}— - run: composer install - save_cache: key: composer-{{ arch }}—{{ checksum "composer.lock" }} paths: - ~/.composer/cache - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - store_test_results: path: ~/phpunit - store_artifacts: path: ~/phpunit
DJSDMFDJDPOpHZNM ✓ઃఆ͢ΔηΫγϣϯ ✓KPCT ✓ෳͷδϣϒΛઃఆ͢Δ ✓XPSLqPXT ✓ෳͷδϣϒΛͲͷΑ͏ʹ࣮ߦ ͢Δ͔Λઃఆ͢Δ
DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers working_directory:
/var/www/html steps: - checkout - restore_cache: keys: - composer-{{ arch }}—{{ checksum "composer.lock" }} - composer-{{ arch }}— - run: composer install - save_cache: key: composer-{{ arch }}—{{ checksum "composer.lock" }} paths: - ~/.composer/cache - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - store_test_results: path: ~/phpunit - store_artifacts: path: ~/phpunit
KPCT ✓δϣϒΛઃఆ͢Δ ✓δϣϒ໊ σϑΥϧτCVJME ✓ޙ΄Ͳग़ͯ͘ΔXPSLqPXͰ༻͢Δ ✓FYFDVUPSΛઃఆ ✓EPDLFS ✓NBDIJOF ಉ༷ͷ7.ڥ
✓NBDPT ✓XPSLJOH@EJSFDUPSZ ✓࣮ߦσΟϨΫτϦΛࢦఆ͢Δ ✓TUFQTͰࡉ͔͍࣮ߦ༰Λઃఆ͢Δ
DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers working_directory:
/var/www/html steps: - checkout - restore_cache: keys: - composer-{{ arch }}—{{ checksum "composer.lock" }} - composer-{{ arch }}— - run: composer install - save_cache: key: composer-{{ arch }}—{{ checksum "composer.lock" }} paths: - ~/.composer/cache - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - store_test_results: path: ~/phpunit - store_artifacts: path: ~/phpunit
TUFQT ✓DIFDLPVU ✓ιʔεΛDIFDLPVU͢Δ ✓SVO ✓ίϚϯυΛ࣮ߦ͢Δ ✓SFTUPSF@DBDIFTBWF@DBDIF ✓DPNQPTFSCVOEMFSΛຖճ͍ͬͯΔͱ࣌ؒ ͷΉͩͳͷͰɺదͳΩʔΛͬͯΩϟογϡ͢Δ ✓TUPSF@BSUJGBDUTTUPSF@UFTU@SFTVMUT ✓ςετ݁ՌΛ$*ͷ݁Ռදࣔʹөͤ͞Δ
DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers working_directory:
/var/www/html steps: - checkout - restore_cache: keys: - composer-{{ arch }}—{{ checksum "composer.lock" }} - composer-{{ arch }}— - run: composer install - save_cache: key: composer-{{ arch }}—{{ checksum "composer.lock" }} paths: - ~/.composer/cache - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - store_test_results: path: ~/phpunit - store_artifacts: path: ~/phpunit
SVO ✓ίϚϯυΛ࣮ߦ͢Δͷͩ ͕ɺ࣮ߦը໘Ͱදࣔ͢Δจࣈ ྻΛઃఆͰ͖Δ - run: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml -
run: name: run tests command: ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml - run: name: run tests command: | ./vendor/bin/phpunit --log-junit ~/phpunit/junit.xml
ෳͷ%PDLFSΠϝʔδΛ͏ ✓EPDLFSFYFDVUPSͷઃఆͰෳͷJNBHFΛࢦఆ͢Δ ✓ͭʹࢦఆͨ͠JNBHF͕ϓϥΠϚϦΠϝʔδʹͳΓɺ TUFQTҎ߱ͷίϚϯυͦͷΠϝʔδʹର࣮ͯ͠ߦ͞ΕΔ ✓ͦͷଞͷίϯςφͷϓϩηεʹɺ ϙʔτ൪ ߸ ͰΞΫηεͰ͖Δ version: 2
jobs: build: docker: - image: php:7.1-apache - image: circleci/mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: test_app MYSQL_USER: test MYSQL_PASSWORD: test - image: redis:3.2
1SJWBUF3FHJTUSZͷ%PDLFSΠϝʔδΛ͏ ✓ೝূ͕ඞཁͳ߹͍͔ͭ͘ࢦఆํ๏͕͋Δ ✓"84&$3ͷࢦఆํ๏͕ಛघ ✓&$3͕௨ৗͷEPDLFSMPHJOΛ͢ΔܗͰͳ͍ͨΊ version: 2 jobs: build: docker: -
image: private/sample:1.0 auth: username: DOCKER_HUB_USERNAME password: DOCKER_HUB_PASSWORD - image: account-id.dkr.ecr.us-east-1.amazonaws.com/org/repo:0.1 aws_auth: aws_access_key_id: ECS_AWS_ACCESS_KEY aws_secret_access_key: ECS_AWS_SECRET_ACCESS_KEY
$JSDMF$*ఏڙͷJNBHF ✓ݴޠ͓ΑͼϛυϧΣΞʹؔͯ͠ɺ$JSDMF$*ࣗମ ͕%PDLFS)VCͰ͞Ε͍ͯΔΦϑΟγϟϧͷ JNBHFΛͬͯɺΧελϜJNBHFΛ͍ͯ͠Δ ✓%#ͷJNBHFɺνϡʔχϯά͕͔ͳΓߦΘ Ε͍ͯΔͷͰςετ͕࣌ؒॖ͞ΕΔͷϝϦο τʹܨ͕Δ ✓ಛʹ͕ͳ͍ݶΓɺ$JSDMF$*ͷJNBHF Λࢼͯ͠ΈΔ͜ͱΛ͓͢͢Ί͢Δ ✓IUUQTIVCEPDLFSDPNVDJSDMFDJ
EPDLFSJNBHFͷஔ͖ॴ ✓$JSDMF$*͓ͦΒ͘"84ͷVTFBTUͰಈ ͍͍ͯΔ ✓%PDLFS)VC͓ͦΒ͘"84ͷVTFBTU Ͱಈ͍͍ͯΔ ✓JNBHFͷQVMM͕ૣ͍ ✓"84ͷ&$3Λ͏߹ɺಉ༷ʹVTFBTU ʹ͓͍ͨ΄͏͕ྑ͍ ✓౦ژϦʔδϣϯʹஔ͘ͱJNBHFͷऔಘʹ༨ܭ ͳ͕͔͔࣌ؒΔͨΊɺ$*ͷ͕࣌ؒ͘ͳΔ
XPSLqPX ✓$JSDMF$*ͷ৽ػೳ ✓ෳͷδϣϒΛͲͷΑ͏ͳґଘؔ ॱ ൪ Ͱ࣮ߦ͢Δ͔ΛఆٛͰ͖Δ ✓ྫ͑ɺQIQDTͰΤϥʔ͕ͳ͍߹ ͷΈɺQIQVOJUΛΒ͍ͤͨͱ͔ ✓࠷ۙೖͬͨػೳͱͯ͠ɺܾ·ͬͨ࣌ؒ ʹδϣϒΛ࣮ߦ͢Δػೳ͕Ճ͞Εͨ
DJSDMFDJDPOpHZNM workflows: version: 2 phpcs_test_deploy_workflow: jobs: - phpcs - test:
requires: - phpcs - deploy filters: branches: only: - master requires: - test cron_workflow: triggers: - schedule: cron: “0 18 * * *” filters: branches: only: - develop jobs: - daily_job
$JSDMF$*ͷϝϦοτ ✓%PDLFSϕʔεʹͳͬͨͷͰɺςετͰඞཁͳڥ Λ͍Εͨ%PDLFSJNBHFΛ࡞͓͚ͬͯɺCVJME࣌ ؒඞཁͳ͘ͳΔ ✓%PDLFSJNBHFͷαΠζΛେ͖͘͢ΔͱQVMMͷ ͕࣌ؒ$*ͷ࣮ߦ࣌ؒʹ݁͢ΔͷͰҙ ✓ தͷਓᐌ͘ ͷࠒɺδϣϒͷ࣮ߦΛTTIଓ ͰແཧΓ͍ͬͯͨͷͰɺมͳΤϥʔ͕ʑൃੜ͠
͍͕ͯͨɺʹͳ͔ͬͯΒɺδϣϒ࣮ߦH31$ ܦ༝ʹͳͬͨͷͰɺ࣮ߦૣ͘ͳΓɺ৴པੑ্͕ͬ ͨ
࠷ۙ҆ఆ͖͍ͯͯ͠Δ ✓("ʹͳ݄ͬͨҎ߱ɺ͠ Β݁͘ߏෆ҆ఆͳঢ়ଶͩͬͨ ✓ͷϫʔΫϑϩʔ͚ͩམ͍ͪͯΔͱ͔ ✓ͷδϣϒ͚ͩͨΒͨ͞ΕΔͱ͔ ✓͜͜ϲ݄݁ߏຊମམͪண͍͍ͯΔ ✓%PDLFS)VCͱͷ࿈ܞͱ͔ɺ)FSPLV ͱͷ࿈ܞͱ͔ɺ֎෦ͷ࿈ܞ͕࣌ʑམͪͯΔ͜ ͱ͕͋Δ
͝ਗ਼ௌ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠