$30 off During Our Annual Pro Sale. View Details »

10分で分るGitHub Actions

Takafumi Ikeda
February 21, 2019

10分で分るGitHub Actions

CI/CD Test Night

Takafumi Ikeda

February 21, 2019
Tweet

More Decks by Takafumi Ikeda

Other Decks in Technology

Transcript

  1. View Slide

  2. 10෼Ͱ෼͔Δ
    GitHub Actions
    2019/02/21
    ikeike443
    Solutions Engineer, GitHub

    View Slide

  3. a ikeike443
    Takafumi Ikeda
    Solutions Engineer

    View Slide

  4. 2008
    GitHub introduced…

    View Slide

  5. Pull Request

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. ϫʔΫϑϩʔ͸ϞδϡϥʔԽ͞ΕΔ΂͖

    View Slide

  12. Actions

    View Slide

  13. Actions

    View Slide

  14. View Slide

  15. workflow "My Workflow" {
    on = "event"
    resolves = ["Action 2", "Action 3"]
    }
    action "Action 1" {
    uses = "user/repo@master"
    runs = "command"
    }
    action "Action 2" {
    uses = "docker://node:10-alpine"
    runs = "command"
    }
    action "Action 3" {
    needs = ["Action 1"]
    uses = ".github/actions/private.js"
    runs = "command"
    }

    View Slide

  16. View Slide

  17. check_run
    check_suite
    commit_comment
    create
    delete
    deployment
    deployment_status
    26
    available events

    View Slide

  18. project_column
    public
    pull_request
    pull_request_review_comment
    pull_request_review
    push
    repository_dispatch
    release

    status
    watch
    26
    available events

    View Slide

  19. GitHub Actionsͱ͸
    • ίϯςφٕज़ϕʔε
    • ϫʔΫϑϩʔ as Code
    • ϫʔΫϑϩʔͷϞδϡϥʔԽɺ࠶ར༻
    • Pull Requestʹଓ͘ਐԽͷ৮ഔ

    View Slide

  20. View Slide

  21. σϞ
    ࣮ࡍʹActionͱWorkflowΛ࡞ͬͯΈΑ͏ʂ

    View Slide

  22. Hello world

    View Slide

  23. खॱ
    • ActionΛ֨ೲ͢ΔϦϙδτϦΛ࡞੒
    • ActionΛDockerfileͱͯ͠ఆٛ
    • ΤϯτϦʔϙΠϯτͱͳΔγΣϧεΫϦϓτΛఆٛ
    • ఆٛͨ͠ActionΛݺͼग़͢ϫʔΫϑϩʔΛఆٛ
    • ࣮ߦ

    View Slide

  24. ϦϙδτϦͷ༻ҙ

    View Slide

  25. Hello World Actionͷఆٛ

    View Slide

  26. ΤϯτϦʔϙΠϯτγΣϧεΫϦϓτ

    View Slide

  27. View Slide

  28. Closer look
    ࠓݟͨ΋ͷͷղઆΛ͔Ͷͯ

    View Slide

  29. ࣮ߦ؀ڥʹ͍ͭͯ
    • Action࣮ߦ؀ڥʹ͍ͭͯ
    • 1 vcpu, 3.75 GB RAM
    • ωοτϫʔΫΞΫηεՄೳ
    • ϑΝΠϧγεςϜ΁ͷΞΫηεՄೳ
    • σΟεΫεϖʔε 100GB
    • ϫʔΫϑϩʔ಺Ͱڞ༗ͯ͠ΞΫηεͰ͖Δ
    • ؀ڥม਺ͷҾ͖౉͠Մೳ
    • ؀ڥม਺͸ϫʔΫϑϩʔ͝ͱͷίϯςΩετͰղऍ͞ΕΔ
    • GitHubʹΑͬͯ༧໿͞Ε͍ͯΔ؀ڥม਺͋Γ

    View Slide

  30. υΩϡϝϯτΛਵ࣌ࢀরͷ͜ͱ
    • ϕʔλதͷͨΊɺͲΜͲΜ௥ه͞Ε͍ͯ·͢

    View Slide

  31. ActionΛ࡞Δͷ͸؆୯
    • جຊతʹ͸طଘͷπʔϧΛίϯςφԽ͢Δ͚ͩ
    • ͖Ε͍ʹ෦඼Խ͢Ε͹࠶ར༻͸͔ͳΓޮ͖΍͍͢

    View Slide

  32. ศརͳAction
    ͙͢ʹ໾ཱͪͦ͏ͳActionΛ঺հ

    View Slide

  33. ֤छΫϥ΢υActions
    • GCP, AWS, Azure, Heroku, Zeit, npm
    • https://github.com/actions ҎԼʹ͋Γ·͢

    View Slide

  34. actions/bin
    • جຊతͳ΋ͷΛఏڙ
    • bats
    • curl
    • debug
    • filter
    • sh
    • shellcheck

    View Slide

  35. HTTP client
    • HTTPie ϥούʔ
    • MarketplaceͰೖखՄ

    View Slide

  36. Add an issue reference
    • ϒϥϯν໊͔ΒIssueΛ
    ୳͠ग़ͯ͠ΫϩεϦϯΫ

    View Slide

  37. All in one project
    • Issue/PRΛৗʹProject΁
    ௥Ճ

    View Slide

  38. Delete merged branch
    • ϚʔδࡁΈϒϥϯν࡟আ
    • Probot app/ActionsͲͪΒ
    Ͱ΋ར༻Մೳ

    View Slide

  39. Ϧιʔε
    ͜ͷ΁ΜݟͯΈͯͶ

    View Slide

  40. https://github.com/actions

    View Slide

  41. GitHub Marketplace

    View Slide

  42. https://github.com/sdras/awesome-actions

    View Slide

  43. Community Forum
    https://github.community/t5/tag/actions/tg-p/board-id/api

    View Slide

  44. ·ͱΊ
    GitHub Actions͕ݟΔະདྷ

    View Slide

  45. ϫʔΫϑϩʔ͸ࣗ༝ʹͳΔ
    • ϫʔΫϑϩʔ͸ϞδϡϥʔԽ͞Ε
    • OSSͱͯ͠օͰ࡞Γ্͍͛ͯ͘΋ͷʹͳΔͰ͠ΐ͏
    • ιϑτ΢ΣΞ։ൃͷੈքʹ৽͍͠1ϖʔδΛ
    • Έͳ͞ΜͷࢀՃΛ଴͍ͬͯ·͢ʂ

    View Slide

  46. View Slide

  47. View Slide