Share
Embed
CircleCI 2.0 をつかってみよう / CircleCI #phpcondo2017
TAKAHASHI Kunihiko
November 25, 2017
Transcript
30 slides
-
DJSDMFZNM ✓ઃఆ͢ΔηΫγϣϯ ✓NBDIJOF ✓DIFDLPVU ✓EFQFOEFODJFT ✓EBUBCBTF ✓DPNQJMF ✓UFTU ✓EFQMPZNFOU ✓ͦΕͧΕͷηΫγϣϯͷઃఆʹରͯ͠ɺQSFPWFSSJEFQPTUͱ
͍ͬͨͷΛՃͯ͠ࣄલʹಈ͔͢ͷࣄޙʹಈ͔͢ͷͱ͍ͬͨ ͷΛઃఆ͍ͯ͘͠ -
DJSDMFZNM machine: timezone: Asia/Tokyo php: version: 7.1.9 services: - mysql
- redis environment: DEBUG: true DATABASE_SERVER: localhost REDIS_SERVER: localhost dependencies: cache_directories: - ~/.composer/cache pre: - echo "memory_limit = 64M" > /opt/circleci/php/$(phpenv global)/etc/conf.d/memory.ini - composer config -g github-oauth.github.com $GITHUB_ACCESS_TOKEN override: - composer install --prefer-dist --no-interaction test: override: - mkdir -p $CIRCLE_TEST_REPORTS/phpunit - vendor/bin/phpunit --log-junit $CIRCLE_TEST_REPORTS/phpunit/junit.xml -
DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers working_directory:
~/repo steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "composer.json" }} - v1-dependencies- - run: composer install -n --prefer-dist - save_cache: paths: - ./vendor key: v1-dependencies-{{ checksum "composer.json" }} - run: ./vendor/bin/phpunit --log-junit ~/reports/phpunit/junit.xml - store_artifacts: path: ~/reports/ - store_test_results: path: ~/reports/ -
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:
~/repo steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "composer.json" }} - v1-dependencies- - run: composer install -n --prefer-dist - save_cache: paths: - ./vendor key: v1-dependencies-{{ checksum "composer.json" }} - run: ./vendor/bin/phpunit --log-junit ~/reports/phpunit/junit.xml - store_artifacts: path: ~/reports/ - store_test_results: path: ~/reports/ -
DJSDMFDJDPOpHZNM version: 2 jobs: build: docker: - image: circleci/php:7.1-apache-browsers working_directory:
~/repo steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "composer.json" }} - v1-dependencies- - run: composer install -n --prefer-dist - save_cache: paths: - ./vendor key: v1-dependencies-{{ checksum "composer.json" }} - run: ./vendor/bin/phpunit --log-junit ~/reports/phpunit/junit.xml - store_artifacts: path: ~/reports/ - store_test_results: path: ~/reports/ -
SVO ✓ίϚϯυΛ࣮ߦ͢Δͷͩ ͕ɺ࣮ߦը໘Ͱදࣔ͢Δจࣈ ྻΛઃఆͰ͖Δ - run: ./vendor/bin/phpunit --log-junit ~/reports/phpunit/junit.xml -
run: name: run tests command: ./vendor/bin/phpunit --log-junit ~/reports/phpunit/junit.xml - run: name: run tests command: | ./vendor/bin/phpunit --log-junit ~/reports/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 -
DJSDMFDJDPOpHZNM version: 2 jobs: தུ workflows: version: 2 phpcs_test_deploy_workflow: jobs:
- phpcs - test: requires: - phpcs - deploy filters: branches: only: - development requires: - test cron_workflow: triggers: - schedule: cron: “0 18 * * *” filters: branches: only: - master -
$JSDMF$*ͷϝϦοτ ✓%PDLFSϕʔεʹͳͬͨͷͰɺςετͰඞཁͳڥ Λ͍Εͨ%PDLFSJNBHFΛ࡞͓͚ͬͯɺCVJME࣌ ؒඞཁͳ͘ͳΔ ✓%PDLFSJNBHFͷαΠζΛେ͖͘͢ΔͱQVMMͷ ͕࣌ؒ$*ͷ࣮ߦ࣌ؒʹ݁͢ΔͷͰҙ ✓ தͷਓᐌ͘ ͷࠒɺδϣϒͷ࣮ߦΛTTIଓ ͰແཧΓ͍ͬͯͨͷͰɺมͳΤϥʔ͕ʑൃੜ͠
͍͕ͯͨɺʹͳ͔ͬͯΒɺδϣϒ࣮ߦH31$ ܦ༝ʹͳͬͨͷͰɺ࣮ߦૣ͘ͳΓɺ৴པੑ্͕ͬ ͨ