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 #phpstudy
Search
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
560
アプリケーションエンジニアな私がホスティング業界に来て感じたあれこれ / ChugokuDB Vol27
kunit
0
670
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
760
Docker for Mac/Winってどうなの? / #fukuokaphp docker for mac and win
kunit
0
290
Other Decks in Technology
See All in Technology
AIペネトレーションテスト・ セキュリティ検証「AgenticSec」紹介資料
laysakura
2
9.3k
トークンマネジメントでAIにとって働きやすい環境を実現する
hikaruegashira
0
120
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.5k
ホームラボ紹介
y_sera15
0
210
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
5
2.1k
Software Supply Chain Attackからクラウド環境を守るためにできること
lhazy
2
280
AI時代のアウトプット――変わったこと、変わらないこと / Devsumi 2026 Kansai #devsumi
jnchito
0
290
【GCC2026】TrueHDRIを用いたルックデブ環境とライティングテクニック
bandainamcostudios
PRO
0
120
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.7k
AIに持続⼒を与える 判断の⻑期記憶設計
eiei114
1
370
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
220
2026-08-15 JAWS-UG 茨城 #16 Secrets ManagerにおけるSecret値の管理(Terraformの場合) / Secrets Manager Secrets
masasuzu
0
360
Featured
See All Featured
The Curse of the Amulet
leimatthew05
2
14k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Building the Perfect Custom Keyboard
takai
2
840
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
Optimizing for Happiness
mojombo
378
71k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
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 ͱͷ࿈ܞͱ͔ɺ֎෦ͷ࿈ܞ͕࣌ʑམͪͯΔ͜ ͱ͕͋Δ
͝ਗ਼ௌ ͋Γ͕ͱ͏ ͍͟͝·ͨ͠