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

Robo を使った モダンなタスク管理/PHP-conference-2017

Robo を使った モダンなタスク管理/PHP-conference-2017

最近ではGradleやGulpなどタスクランナーは、よりコードに近い形で定義できるツールが使われてきています。
PHPではJenkinsなどとの連携の容易さから、Phingが使われることが多かったと思いますが、XMLでの定義は容易ではありませんでした。
RoboはPHPのコードでタスクを定義できるモダンなタスクランナーで、私たちPHPerにも読みやすく理解しやすい構造をしています。

このセッションではRoboを使ったタスクの定義を、動作デモを交えて紹介したいと思います。

http://robo.li/

Kenichiro Kishida

October 08, 2017
Tweet

More Decks by Kenichiro Kishida

Other Decks in Technology

Transcript

  1. 3PCPΛ࢖ͬͨ
    ϞμϯͳλεΫ؅ཧ
    php conference 2017 by @sizuhiko

    View Slide

  2. ,FOJDIJSP,JTIJEB
    5PLZP +"1"/
    TJ[VIJLP!HNBJMDPN !TJ[VIJLP
    IUUQTHJUIVCDPNTJ[VIJLP
    IUUQCMPHPQFOUPLZPKQ
    2QN[OGTEQGFQ

    View Slide

  3. ࣗಈԽͯ͠·͔͢ʁ

    View Slide

  4. %FW0QT
    IUUQTKBXJLJQFEJBPSHXJLJ%FW0QTΑΓҾ༻

    View Slide

  5. wૣ͘ࢢ৔ʹग़͢
    wϑΟʔυόοΫΛಘΔ
    w҆ఆͨ͠඼࣭
    wڞ௨ͷձ࿩

    View Slide

  6. ࣗಈԽ͸
    ໨తͰͳ͘
    खஈͰ͋Δ

    View Slide

  7. } else {
    // 失敗パターンの処理
    this.log.error(“エラーメッセージ”);
    this.response.status = 500;
    throw new ServerError();
    }
    this.log.info(“何かのログ”);
    @@ -8,6 +8,7 @@ php:

    View Slide

  8. if (results) {
    // 成功パターンの処理
    return this;
    } else {
    // 失敗パターンの処理
    this.log.error(“エラーメッセージ”);
    this.response.status = 500;
    throw new ServerError();
    }
    this.log.info(“何かのログ”);

    View Slide

  9. View Slide

  10. wίʔυϨϏϡʔ
    w੩తղੳ
    wࣗಈςετ
    wࣗಈσϓϩΠ

    View Slide

  11. +FOLJOT

    View Slide

  12. pipeline {
    agent any
    stages {
    stage('Install') {
    steps {
    sh 'npm install'
    }
    }
    stage('JsHint') {
    steps {
    sh 'npm run lint:ci'
    }
    }
    stage('Test') {
    steps {
    sh 'npm run test:ci'
    }
    }
    }
    post {
    always {
    step([$class: 'CheckStylePublisher',
    pattern: 'jshint-results.xml',
    unstableTotalAll: '0',
    usePreviousBuildAsReference: true])
    junit allowEmptyResults: true, testResults: 'test-results/*.xml'
    }
    }
    }

    View Slide

  13. View Slide






































  14. View Slide

  15. w(/6.BLF 3BLFͳͲؚΉ

    wNBWFOBOU
    wHSBEMF
    wHSVOU
    wHVMQ

    View Slide

  16. 443 41"

    View Slide

  17. 443 41"

    View Slide

  18. $PNQPTFS

    View Slide

  19. {
    "scripts": {
    "test": [
    "@composer install",
    "@clear",

    "phpunit"
    ],

    "clear": "rm -rf test-results/*”
    }
    }

    View Slide

  20. http://robo.li/

    View Slide

  21. • automate your common tasks
    • start workers
    • run parallel tasks
    • execute commands
    • run tests
    • watch filesystem changes

    View Slide

  22. %FNP
    https://github.com/sizuhiko/
    phpkansai-2017-demo

    View Slide

  23. 1)1 /PEF+4
    ґଘؔ܎ͷղܾ $PNQPTFS /1.
    λεΫϥϯφʔ 3PCP (VMQ

    View Slide

  24. ssh
    rsync
    phpunit

    View Slide

  25. WJTJUNZCMPHHJUIVC
    https://github.com/sizuhiko
    http://blog.open.tokyo.jp

    View Slide