Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オンプレミスJenkinsをやっと葬り去った話 / jenkins_kill

オンプレミスJenkinsをやっと葬り去った話 / jenkins_kill

Jun Watanabe

April 21, 2016
Tweet

More Decks by Jun Watanabe

Other Decks in Programming

Transcript

  1. ΦϯϓϨϛεJenkins
    Λ΍ͬͱ૴Γڈͬͨ࿩
    2016/04/21 PHPBLT#4
    Jun Watanabe

    View Slide

  2. Jun Watanabe @rela1470
    • ΃ͪͺʔ6೥໨
    • ORATTA, Inc Chief Engineer
    • http://rela.red/

    View Slide

  3. ݁࿦

    View Slide

  4. JenkinsΛcircleciʹ͠·ͨ͠!

    View Slide

  5. ͛͢ʔΑ͘ฉ͘࿩

    View Slide

  6. ৭ʑͭ·͍ͮͨΓ
    ؤுͬͨͷͰ
    ۪ஒΒ͍ͤͯͩ͘͞

    View Slide

  7. ෩࿊෦(ࣾ಺੍౓)
    िʹ3࣌ؒձٞࣨʹ࿜ͬͯ
    ͻͨ͢Βۀ຿վળɾٕज़ௐࠪ
    ORATTA Frontier TechͷଏশΒ͍͠

    View Slide

  8. ࠓ೥2݄͔Β
    CIվળΛ
    ΍ͬͯ·ͨ͠

    View Slide

  9. ͍··Ͱͷվળ

    View Slide

  10. ͓ͬ͞Μͷإ͕ݏ

    View Slide

  11. ঁମԽͰ
    ղܾ
    ࣗࣾͷσβΠφʔ͞Μʹॻ͍ͯ΋Β͍·ͨ͠ʘ(^o^)ʗ

    View Slide

  12. σβΠϯ͕
    ݹष͍

    View Slide

  13. http://aarjithn.github.io/jenkins-neo-theme/

    View Slide

  14. ͦΕͰ΋ཷ·Δ
    Jenkinsͷ໰୊఺

    View Slide

  15. ҡ࣋͢ΔͨΊͷ
    ίετ͕ߴ͍

    View Slide

  16. खಈͰͷόʔδϣϯΞοϓ

    View Slide

  17. ϓϥάΠϯ45ݸ

    View Slide

  18. PHP΍PEARͷ
    ϓϩμΫτࠩ෼

    View Slide

  19. circleciಋೖͰ
    Ͳ͏΍ͬͯղܾ͔ͨ͠

    View Slide

  20. PEAR໰୊

    View Slide

  21. Composerಋೖ

    View Slide

  22. άάΔͱग़ͯ͘Δ΍ͭ
    {
    "require": {
    "pear-pear.php.net/PEAR" : "*",
    "pear-pear.php.net/log" : "*",
    "pear-pear.php.net/http_request2" : "*"
    },
    "repositories": [
    {
    "type": "pear",
    "url": "http://pear.php.net"
    }
    ]
    }

    View Slide

  23. 2016/03/03

    View Slide

  24. 2016/03/10

    View Slide

  25. ಈ͔ͳ͘
    ͳͬͯͨ…

    View Slide

  26. 2016/3/4
    ϦϦʔε
    composer
    1.0.0-beta1
    ࢓༷มߋ
    http௨৴NG͕
    σϑΥϧτઃఆʹ

    View Slide

  27. Composerා͍

    View Slide

  28. ౰࣌͸ղܾࡦ͕
    Θ͔Βͳ͔ͬͨ

    View Slide

  29. ͖ͬ͞QiitaͰݟ͚ͭ·ͨ͠
    http://qiita.com/shinkuFencer/items/00c6cdbc0d0e0e081e38

    View Slide

  30. httpΛڐͯ͠΋Β͏
    {
    "config": {
    "secure-http": false
    },
    "require": {
    "pear-pear.php.net/PEAR" : "*",
    "pear-pear.php.net/log" : "*",
    "pear-pear.php.net/http_request2" : "*"
    },
    "repositories": [
    {
    "type": "pear",
    "url": "http://pear.php.net"
    }
    ]
    }

    View Slide

  31. ࠓճ͸Ͳ͏͔ͨ͠

    View Slide

  32. Packagist

    View Slide

  33. Packagistʹ͋Δ΍ͭΛ࢖͏
    {
    "require": {
    "pear/pear": "dev-master",
    "pear/log": "*@stable",
    "pear/http_request2": "v2.3.0"
    },
    "require-dev": {
    "phpunit/phpunit": "4.8.23",
    }
    }

    View Slide

  34. Θ͟Θ͟ΦϓγϣϯͰηΩϡ
    ϦςΟऑΊͳͯ͘ྑ͍
    ΠϚυΩͬΆ͍

    View Slide

  35. PackagistͰ
    ࣮૷ͯ͠
    ྑ͔ͬͨ

    View Slide

  36. ྑ͔ͬͨ…

    View Slide

  37. PHPͷόʔδϣϯ

    View Slide

  38. 7.0.4 / 7.0.0RC7 / 5.6.14 /
    5.6.5 / 5.6.2 / 5.5.21 / 5.5.16 /
    5.5.15 / 5.5.11 / 5.5.9 / 5.5.8 /
    5.5.7 / 5.5.3 / 5.5.2 / 5.5.0 /
    5.4.37 / 5.4.21 / 5.4.19 /
    5.4.18 / 5.4.15 / 5.4.14 /
    5.4.13 / 5.4.12 / 5.4.11 /
    5.4.10 / 5.4.9 / 5.4.8 / 5.4.7 /
    5.4.6 / 5.4.5 / 5.4.4 / 5.3.25 /
    5.3.20 / 5.3.10 / 5.3.3

    View Slide

  39. circle.ymlͰόʔδϣϯࢦఆ
    machine:
    php:
    version: 5.5.21

    View Slide

  40. gitͷ഑ஔ

    View Slide

  41. 1ϓϩδΣΫτ
    5ͭ͘Β͍ͷgitʹ
    ෼͔Ε͍ͯΔ

    View Slide

  42. ϓϩδΣΫτͷgit഑ஔྫ
    multi [multi.git] //ࣗࣾϑϨʔϜϫʔΫ
    !system
    ɹ"addon
    ɹ#ɹ!asuka [asuka.git] //ϓϩδΣΫτຖͷಠ࣮ࣗ૷ιʔε
    ɹ#ɹɹ"master [asuka-master.git]ɹ//ΞΠςϜ౳ͷϚελʔઃఆ
    ɹ#ɹɹ!web [asuka-web.git]ɹ//ը૾΍Ի੠౳
    ɹ!lib[lib.git] //ࣗࣾϥΠϒϥϦ

    View Slide

  43. αϒϞδϡʔϧԽ
    ͨ͠

    View Slide

  44. αϒϞδϡʔϧԽ
    ͔ͨͬͨ͠

    View Slide

  45. ෺ཧͰԥͬͨ
    (circle.yml)

    View Slide

  46. git cloneͯ͠
    ࣗ෼Ͱ഑ஔ͠ͳ͓͢
    checkout:
    post:
    - "mkdir -p /tmp/yaml"
    - "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”
    override:
    - "phpunit -c /home/ubuntu/multi/system/addon/${CIRCLE_PROJECT_REPONAME}/
    phpunit.xml -d memory_limit=512M"

    View Slide

  47. ຖճ1͔Β
    git clone

    View Slide

  48. View Slide

  49. 13ඵ͘Β͍

    View Slide

  50. GitHub͸ҙ֎ͱૣ͍

    View Slide

  51. ΩϟογϡʹೖΕͯ
    ϦετΞΛࢼͨ͠Β
    ٯʹ஗͘ͳͬͨ

    View Slide

  52. ϏϧυνΣΠϯ

    View Slide

  53. ϓϩδΣΫτͷgit഑ஔྫ
    multi [multi.git] //ࣗࣾϑϨʔϜϫʔΫ
    !system
    ɹ"addon
    ɹ#ɹ!asuka [asuka.git] //ϓϩδΣΫτຖͷಠ࣮ࣗ૷ιʔε
    ɹ#ɹɹ"master [asuka-master.git]ɹ//ΞΠςϜ౳ͷϚελʔઃఆ
    ɹ#ɹɹ!web [asuka-web.git]ɹ//ը૾΍Ի੠౳
    ɹ!lib[lib.git] //ࣗࣾϥΠϒϥϦ

    View Slide

  54. ্ҐͷGit͕ߋ৽͞Εͨ৔߹
    શϓϩδΣΫτͷςετΛ
    ૸Β͍ͤͨ

    View Slide

  55. ෺ཧͰԥͬͨ
    (circle.yml)

    View Slide

  56. ςετʹ੒ޭͨ͠Β
    ؔ࿈͢ΔϓϩδΣΫτΛAPIܦ༝Ͱ࣮ߦ
    deployment:
    develop:
    branch: develop
    commands:
    - curl -X POST https://circleci.com/api/v1/project/oratta-inc/rave/
    tree/develop?circle-token=$CHAIN_PROJECT_TOKEN
    - curl -X POST https://circleci.com/api/v1/project/oratta-inc/chloris/
    tree/develop?circle-token=$CHAIN_PROJECT_TOKEN
    - curl -X POST https://circleci.com/api/v1/project/oratta-inc/dark/
    tree/develop?circle-token=$CHAIN_PROJECT_TOKEN
    - curl -X POST https://circleci.com/api/v1/project/oratta-inc/bleach/
    tree/develop?circle-token=$CHAIN_PROJECT_TOKEN
    - curl -X POST https://circleci.com/api/v1/project/oratta-inc/asuka/
    tree/develop?circle-token=$CHAIN_PROJECT_TOKEN
    - curl -X POST https://circleci.com/api/v1/project/oratta-inc/sengoku/
    tree/develop?circle-token=$CHAIN_PROJECT_TOKEN
    - curl -X POST https://circleci.com/api/v1/project/oratta-inc/aqua/
    tree/develop?circle-token=$CHAIN_PROJECT_TOKEN

    View Slide

  57. View Slide

  58. ແྉϓϥϯͩͱ
    1ίϯςφͷΈ

    View Slide

  59. ஗͍

    View Slide

  60. ۚͰԥΔ?

    View Slide

  61. Slack࿈ܞ

    View Slide

  62. PHPͰಠ࣮ࣗ૷

    View Slide

  63. σϑΥϧτͰ࿈ܞػೳ͋Γ

    View Slide

  64. ෭࢈෺

    View Slide

  65. composerಋೖͰ
    ϩʔΧϧ؀ڥ͕౷Ұग़དྷͨ

    View Slide

  66. PhpStormͰΧόϨοδͱ͔

    View Slide

  67. ·ͱΊ

    View Slide

  68. ϨΨγʔγεςϜͰ΋
    ෺ཧ(circle.yml)Ͱ
    ͳΜͱ͔ͳΔ

    View Slide

  69. Composerා͍

    View Slide