CI/CD Test Night
View Slide
10Ͱ͔ΔGitHub Actions2019/02/21ikeike443Solutions Engineer, GitHub
a ikeike443Takafumi IkedaSolutions Engineer
2008GitHub introduced…
Pull Request
ϫʔΫϑϩʔϞδϡϥʔԽ͞ΕΔ͖
Actions
workflow "My Workflow" {on = "event"resolves = ["Action 2", "Action 3"]}action "Action 1" {uses = "user/[email protected]"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"}
check_runcheck_suitecommit_commentcreatedeletedeploymentdeployment_status26available events
project_columnpublicpull_requestpull_request_review_commentpull_request_reviewpushrepository_dispatchrelease statuswatch26available events
GitHub Actionsͱ• ίϯςφٕज़ϕʔε• ϫʔΫϑϩʔ as Code• ϫʔΫϑϩʔͷϞδϡϥʔԽɺ࠶ར༻• Pull Requestʹଓ͘ਐԽͷ৮ഔ
σϞ࣮ࡍʹActionͱWorkflowΛ࡞ͬͯΈΑ͏ʂ
Hello world
खॱ• ActionΛ֨ೲ͢ΔϦϙδτϦΛ࡞• ActionΛDockerfileͱͯ͠ఆٛ• ΤϯτϦʔϙΠϯτͱͳΔγΣϧεΫϦϓτΛఆٛ• ఆٛͨ͠ActionΛݺͼग़͢ϫʔΫϑϩʔΛఆٛ• ࣮ߦ
ϦϙδτϦͷ༻ҙ
Hello World Actionͷఆٛ
ΤϯτϦʔϙΠϯτγΣϧεΫϦϓτ
Closer lookࠓݟͨͷͷղઆΛ͔Ͷͯ
࣮ߦڥʹ͍ͭͯ• Action࣮ߦڥʹ͍ͭͯ• 1 vcpu, 3.75 GB RAM• ωοτϫʔΫΞΫηεՄೳ• ϑΝΠϧγεςϜͷΞΫηεՄೳ• σΟεΫεϖʔε 100GB• ϫʔΫϑϩʔͰڞ༗ͯ͠ΞΫηεͰ͖Δ• ڥมͷҾ͖͠Մೳ• ڥมϫʔΫϑϩʔ͝ͱͷίϯςΩετͰղऍ͞ΕΔ• GitHubʹΑͬͯ༧͞Ε͍ͯΔڥม͋Γ
υΩϡϝϯτΛਵ࣌ࢀরͷ͜ͱ• ϕʔλதͷͨΊɺͲΜͲΜه͞Ε͍ͯ·͢
ActionΛ࡞Δͷ؆୯• جຊతʹطଘͷπʔϧΛίϯςφԽ͢Δ͚ͩ• ͖Ε͍ʹ෦Խ͢Ε࠶ར༻͔ͳΓޮ͖͍͢
ศརͳAction͙͢ʹཱͪͦ͏ͳActionΛհ
֤छΫϥυActions• GCP, AWS, Azure, Heroku, Zeit, npm• https://github.com/actions ҎԼʹ͋Γ·͢
actions/bin• جຊతͳͷΛఏڙ• bats• curl• debug• filter• sh• shellcheck
HTTP client• HTTPie ϥούʔ• MarketplaceͰೖखՄ
Add an issue reference• ϒϥϯν໊͔ΒIssueΛ୳͠ग़ͯ͠ΫϩεϦϯΫ
All in one project• Issue/PRΛৗʹProjectՃ
Delete merged branch• ϚʔδࡁΈϒϥϯνআ• Probot app/ActionsͲͪΒͰར༻Մೳ
Ϧιʔε͜ͷΜݟͯΈͯͶ
https://github.com/actions
GitHub Marketplace
https://github.com/sdras/awesome-actions
Community Forumhttps://github.community/t5/tag/actions/tg-p/board-id/api
·ͱΊGitHub Actions͕ݟΔະདྷ
ϫʔΫϑϩʔࣗ༝ʹͳΔ• ϫʔΫϑϩʔϞδϡϥʔԽ͞Ε• OSSͱͯ͠օͰ࡞Γ্͍͛ͯ͘ͷʹͳΔͰ͠ΐ͏• ιϑτΣΞ։ൃͷੈքʹ৽͍͠1ϖʔδΛ• Έͳ͞ΜͷࢀՃΛ͍ͬͯ·͢ʂ