Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
ユニットテストが入れられないレガシーなソースでCIが回せるようになった
MiuraKatsu
December 15, 2018
Technology
0
1.4k
ユニットテストが入れられないレガシーなソースでCIが回せるようになった
MiuraKatsu
December 15, 2018
Tweet
Share
More Decks by MiuraKatsu
See All by MiuraKatsu
ローカルにmetabase環境を構築する時に便利な小話
miurakatsu
1
440
Other Decks in Technology
See All in Technology
Kaggleシミュレーションコンペの動向
nagiss
0
240
20230123_FinJAWS
takuyay0ne
0
120
Stripe / Okta Customer Identity Cloud(旧Auth0) の採用に至った理由 〜モリサワの SaaS 戦略〜
tomuro
0
120
JAWS-UG 横浜 #54 資料
takakuni
0
200
地方自治体業務あるある ーアナログ最適化編-
y150saya
1
130
創業1年目のスタートアップでAWSコストを抑えるために取り組んでいること / How to Keep AWS Costs Down at a Startup
yuj1osm
3
2k
OpenShift.Run2023_create-aro-with-terraform
ishiitaiki20fixer
1
190
2022年に起きたフロントエンドの変化
sakito
29
17k
- Rでオブジェクト指向プログラミング- クラス設計入門の入門
kotatyamtema
1
720
【NGK2023S】 ノードエディタ形式の画像処理ツール「Image-Processing-Node-Editor」
kazuhitotakahashi
0
250
データベースの発表には RDBMS 以外もありますよ
maroon1st
0
230
CES_2023_FleetWise_demo.pdf
sparkgene
0
110
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
263
38k
Building Applications with DynamoDB
mza
85
5k
Designing Experiences People Love
moore
130
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
349
27k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
22
1.7k
The Power of CSS Pseudo Elements
geoffreycrofte
52
4.3k
Happy Clients
brianwarren
90
5.8k
Adopting Sorbet at Scale
ufuk
65
7.8k
Large-scale JavaScript Application Architecture
addyosmani
499
110k
YesSQL, Process and Tooling at Scale
rocio
159
12k
Visualization
eitanlees
128
12k
A better future with KSS
kneath
230
16k
Transcript
Ϣχοτςετ͕ೖΕΒΕͳ͍ ϨΨγʔͳιʔεͰ $*͕ճͤΔΑ͏ʹͳͬͨ PHP ΧϯϑΝϨϯε 2018 2018/12/15 ΫʔίϜגࣜձࣾ ࡾӜɹࠀߒ
ࣗݾհ •໊લɿࡾӜ ࠀߒ •Twitter IDɿ@MiuraKatsu •ࣄɿCTOతͳ •͖ͳϑϨʔϜϫʔΫɿ LaravelɺSails.js • ॕӜϨοζఱߖഋ༏উɿ
ձһ੍॓ധɾϨϯλΧʔ༧αΠτ ʮ50$00ʂʯ IUUQTXXXUPDPPKQ
w Ұൠతͳ॓ധ༧αΠτɿ॓ധඅʴࢪઃ͔Βखྉ w 50$00ɿ॓ധඅͷΈɻखྉͳ͠ͷԷ w ͦͷ͔ΘΓɿϢʔβ͕༗ྉձඅ w .8$ .FNCFSTIJQ8IPMFTBMF$MVC Ϟσϧ
w αϒεΫϦϓγϣϯϞσϧ 50$00ͷϏδωεϞσϧ
खྉ ॓ധඅʢؚखྉ ॓ധඅʢؚखྉ खྉ ॓ധඅʢؚखྉ ॓ധඅʢؚखྉ खྉ ॓ധඅʢؚखྉ ॓ധඅʢؚखྉ Ұൠతͳ॓ധ༧αΠτ
ձඅ ॓ധඅͷΈ ॓ധඅͷΈ 5PDPP ॓ധඅͷΈ ॓ധඅͷΈ ॓ധඅͷΈ ॓ധඅͷΈ
w Πϯϑϥڥ͕ΦϯϓϨϛεɻ w ݄Ͱσʔλɾηϯλʔͷܖຬྃɻ w ߋ৽ͤͣʹ"84ͷҠߦΛܾஅɻ w Ϋϥεϝιου͞ΜʹɺΠϯϑϥߏஙίϯαϧґཔ w ࣗͨͪΞϓϦͷվमʹूத
ϨΨγʔ٫ͷ͖͔͚ͬ IUUQTDMBTTNFUIPEKQDBTFTDPPDPN Πϯϑϥଆͷࣄྫհˠ
w ιʔεཧɿHJUMBCɺTWOɺHJUIVCೖΓཚΕΔ w ੈཧɿσΟϨΫτϦؙ͝ͱ w ڥཧɿσΟϨΫτϦΛ͚ͯ w σϓϩΠɿGUQͰαʔόͮͭखಈσϓϩΠ ΞϓϦέʔγϣϯଆͷ՝
ϨΨγʔΏ͑ʹͰ͖͍ͯͨ w %FWڥɿෳࡶͳσΟϨΫτϦߏ w ̍αʔόʹෳڥ͕όʔδϣϯҧ͍ͰଘࡏͰ͖͍ͯͨ w ख࡞ۀͷஔͳͷͰɺࣗ༝͕ߴ͍
ϨΨγʔ٫ͷୈҰา w ιʔεཧΛ(JUIVCʹूɺϒϥϯνӡ༻ w ෳ%FWڥ༻ҙɿ%FWʙ%FW·Ͱ४උ w +FOLJOTʹΑΔࣗಈ%FQMPZͷಋೖ w %FQMPZFS QIQ
$BQJTUSBOPΈ͍ͨͳͭͷ1)1൛ w %FWʙ%FWʹͦΕͧΕϒϥϯνࢦఆͰ%FQMPZՄೳ w 7BHSBOUͰͷ-PDBMڥɿݸਓͷ։ൃڥ͜͜ɻ
։ൃͷखॱͷมԽ w (JUIVCͰϒϥϯνӡ༻ɿϓϧϦΫͱϨϏϡʔͷಋೖ w +FOLJOTɺຊ൪%FQMPZ+PCNBTUFSϒϥϯν͚ͩ w (JUIVCɺϨϏϡʔ௨Βͳ͍ͱNBTUFSʹ.FSHFͰ͖ͳ͍ઃఆ w Έͷಋೖɹˠɹ͜ͷจԽʹ׳ΕΔ
w (JUIVCͰ13ͷ$IFDL͕(SFF͡Όͳ͍ͱ.FSHFͰ͖ͳ͘ ͯɺ+FOLJOTͰࢦఆͨ͠ڥʹ#SBODIΛબΜͰ%FQMPZͰ ͖Δ༻ʹͳͬͨΒɾɾɾ w $*Λճ͍ͨ͠ΑͶɻ w ͰϢχοτςετͱͯೖΕΒΕͳ͍ɿιʔεతʹ ࣍ͷ45&1
$PEFDFQUJPO IUUQTDPEFDFQUJPODPN
$PEFDFQUJPO w ςετϑϨʔϜϫʔΫ w l୯ମςετɺػೳςετɺड͚ೖΕςετΛͭͷํ๏Ͱ ͙͢ʹॻ͚ΔΑ͏ʹͳΔͨΊͷπʔϧͳͷͰ͢ɻz IUUQTQJDDBHMJBOJHJUIVCJP$PEFDFQUJPOEPDT
[email protected]
+1
ड͚ೖΕςετ ʢBDDFQUBODFUFTUʣ w ϢʔβςετɺΞΫηϓλϯεςετ w ϒϥβΛ࣮ࡍʹಈ͔͢&&ͷςετ w ϑϨʔϜϫʔΫɺݴޠɺσʔλϕʔεʹΑΒͳ͍ w ϒϥοΫϘοΫεςετ
̎छྨͷϒϥβ w 1)1#SPXTFS1)1ͱD63-͚ͩͰͲΜͳڥͰ࣮ߦ Ͱ͖Δɻ+BWBTDSJQU͕࣮ߦͰ͖ͳ͍ɻ w 4FMFOJVN8FC%SJWFS4FMFOJVN4FSWFS͕ඞཁɻ .PCJMF&NVMBUF͕Ͱ͖ͳ͍ɻʢ8FC%SJWFSͷʁʣ
w 4FMFOJVNͰςετ͍͚ͨ͠Ͳɺ4FMFOJVNαʔόཱͯΔͷΊΜͲ͍͘͞ w %PDLFS)VCʹ͋ͬͨɻIUUQTIVCEPDLFSDPNVTFMFOJVN w $PEFDFQUJPOͷ࣮ߦڥߏங͠ͳ͍ͱ͚ͩͲɺαʔόཱͯΔͷΊΜͲ͍͘͞ w %PDLFS)VCʹ͋ͬͨɻIUUQTIVCEPDLFSDPNSDPEFDFQUJPO DPEFDFQUJPO w
%PDLFSDPNQPTFͰ࡞Εͦ͏ɻ %PDLFS)VCʹ͋ͬͨɻ
EPDLFSDPNQPTFZNM version: '2' services: codecept: image: codeception/codeception depends_on: - chrome
- firefox volumes: - './tests:/project/tests' - './codeception.yml:/project/codeception.yml' chrome: image: 'selenium/standalone-chrome-debug:2.53.1' ports: - '5901:5900' firefox: image: 'selenium/standalone-firefox-debug:2.53.1' ports: - '5902:5900'
ίϚϯυ w TFMFOJVNαʔό্ཱͪ͛ >docker-compose up -d chrome firefox w EPDLFSͷCSPXTFSͷڍಈ֬ೝ
7/$ >open vnc://x:
[email protected]
:5901 w $PEFDFQUJPOͰͷςετ࣮ߦ >docker-compose run codecept run -x optional -vv -- html=_report.html --env firefox --env chrome --env phpbrowser -g all
.BLFpMF .PHONY: all DOCKER_COMPOSE ?= docker-compose GROUP ?= all all:
##@test [TEST] shorthand for $(MAKE) up run-tests up: ##@development start stack $(DOCKER_COMPOSE) up -d chrome firefox run-tests: ##@test run tests $(DOCKER_COMPOSE) run codecept run -x optional -vv -- html=_report.html --env firefox --env chrome --env phpbrowser -g ${GROUP}
%PDLFSͱ$PEFDFQUJPOΛͬͯ&&ςετ Λ؆୯ʹ࣮ߦ$*Ͱ͖ΔڥΛ࡞ͬͯΈͨɻ w IUUQTRJJUBDPN.JVSB,BUTVJUFNT EBBEC w IUUQTHJUIVCDPN.JVSB,BUTV
[email protected]
@BDDFQUBODF
σϞ ͕࣌ؒ͋Εɾɾɾ
$JSDMF$* w $*$JSDMF$*Ͱճ͢ɻ+FOLJOT%FQMPZʹઐ೦ɻ w $JSDMF$*Ͱಉ͡EPDLFSDPNQPTFΛ͍͍ͨ w ࣮ߦλΠϓEPDLFS͡Όͳͯ͘ɺNBDIJOF w DJSDMFDJDPOpHZNMʹಉ͡EPDLFSDPNQPTFίϚϯυ
$*ͷྲྀΕ w (JUIVCͰNBTUFSʹ13 w ˠ+FOLJOTͰ%FWڥʹ%FQMPZ w ˠ$JSDMF$*Ͱ$PEFDFQUJPOͰ"DDFQUBODF5FTUΛ%FW̌ڥͰ࣮ߦ 1VMM3FRVFTU 8FCIPPL %FQMPZ
"DDFQUBODF5FTU %FW̌ڥ
w %PDLFS*NBHFΛ1VMM͢Δͱ͕͔͔࣌ؒΔ w %PDLFS*NBHFͷ$BDIF࡞͓ͬͯ͘ w ࢀߟɹ$JSDMF$JͰ%PDLFSΠϝʔδΛΩϟογϡ͠Ϗ ϧυΛരͰߦ͏IUUQTRJJUBDPNUBLFDPSF!HJUIVC JUFNTBCFC
̎ w EFWڥͳͷͰIUUQͷΞΫηε*1ߜͬͯΔ w ςετͷηΩϡϦςΟάϧʔϓʹՃɾআ #!/bin/sh export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
export AWS_DEFAULT_REGION="ap-northeast-1" #dev-circleci-codeception-sg COMSECURITYGROUP=“sg-yoursecuritygroupid“ MYIP=`curl -s ifconfig.me` aws ec2 authorize-security-group-ingress --group-id ${COMSECURITYGROUP} -- protocol tcp --port 443 --cidr ${MYIP}/32 aws ec2 revoke-security-group-ingress --group-id ${COMSECURITYGROUP} -- protocol tcp --port 443 --cidr ${MYIP}/32
ॻ͍͍ͯΔςετ w ࠷ݶͷػೳ τοϓϖʔδͷදࣔɺӳதؖΓସ͑ɺ ݕࡧɺϩάΠϯʣͷςετ͚ͩ࡞ w $*ͷతɿσάϨɾطଘͷӨڹ͕ͳ͍͔ͷνΣοΫɻ
ͪΐͬͱ͚ͩ ϨΨγʔ͔Β٫
·ͱΊ w ϨΨγʔڥͰɺແཧʹϢχοτςετ͡Όͳͯ͘ &&ͷड͚ೖΕςετ͔Β͡ΊͯͲ͏ͩΖ͏͔ɻ w &&Ͱͷ$*ɺࣗಈ%FQMPZͷΈ͑͑͞ΒΕΕɺͳ Μͱ͔ͳΔɻ w ϨΨγʔͰ$*ճͤΔɻ
ຊ֨తʹϨΨγʔ͔Βͷ٫ w ൈຊతվमɻͱ͍͏͔࡞Γସ͑ɻ w 1)1 $BLF1)1 "VSPSB .ZTRM "NB[PO-JOVY w
Ϣχοτςετಋೖ༧ఆ w ͪΖΜड͚ೖΕςετ
ΤϯδχΞืूத IUUQTXXXXBOUFEMZDPNDPNQBOJFTUPDPP