Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
githubactions-potetotips.pdf
Search
katsutomu
February 12, 2020
Programming
2
630
githubactions-potetotips.pdf
katsutomu
February 12, 2020
Tweet
Share
More Decks by katsutomu
See All by katsutomu
チームで進めるRenovate
katsutomu
0
66
CDC Testing試してみた
katsutomu
0
2.8k
Other Decks in Programming
See All in Programming
Flatt Security XSS Challenge 解答・解説
flatt_security
0
1.1k
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
2.2k
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
140
2025.01.17_Sansan × DMM.swift
riofujimon
2
670
振り返れば奴(Cline)がいる
keiyagi
0
130
SRE、開発、QAが協業して挑んだリリースプロセス改革@SRE Kaigi 2025
nealle
1
3.3k
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
28
6.1k
EC2からECSへ 念願のコンテナ移行と巨大レガシーPHPアプリケーションの再構築
sumiyae
3
630
AWS Lambda functions with C# 用の Dev Container Template を作ってみた件
mappie_kochi
0
220
定理証明プラットフォーム lapisla.net
abap34
1
670
2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン
honmarkhunt
6
4.2k
Terraform で作る Amazon ECS の CI/CD パイプライン
hiyanger
0
110
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Writing Fast Ruby
sferik
628
61k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
192
16k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
Music & Morning Musume
bryan
46
6.3k
Faster Mobile Websites
deanohume
305
30k
Speed Design
sergeychernyshev
25
760
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Become a Pro
speakerdeck
PRO
26
5.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
A better future with KSS
kneath
238
17k
Transcript
ࠓ͔Β࢝ΊΔ GithubActions
ࣗݾհ ❖ ؔࠜ ࠀయ @katsutomu ❖ ίωώτגࣜձࣾ / Android Engineer
❖ 2017/11/01ʹjoin ❖ ࠷ۙTLͱͯ͠Ϛωδϝϯτͬͯ·͢
͖ΐ͏͢͜ͱ ❖ Github Actions֓ཁ ❖ ϫʔΫϑϩʔͷղઆ ❖ ΞΫγϣϯͷղઆ ❖ ϚϚϦΞϓϦͰ͍ͬͯΔ͜ͱ
Github Actions֓ཁ
֓ཁ ❖ GithubͷΠϕϯτΛτϦΨʔʹ͠ ͯɺಛఆͷϫʔΫϑϩʔΛ࣮ߦͰ ͖Δ ❖ ϫʔΫϑϩʔDockerίϯςφ্ ͰՔಇ͠ɺΞΫγϣϯΛ࣮ߦ͢Δ ❖ ΞΫγϣϯΞΫγϣϯҎԼͷ
ͷΛར༻Ͱ͖Δ ❖ ϦϙδτϦͰఆٛ͞Ε͍ͯΔΞΫγϣϯ ❖ GitHubͷOSSͷΞΫγϣϯ ❖ ެ։͞Ε͍ͯΔDockerίϯςφΠϝʔδ
ϫʔΫϑϩʔͷղઆ
ϫʔΫϑϩʔͱ ❖ Ϗϧυɺςετɺύοέʔδɺ ϦϦʔεɺͳͲΛࣗಈԽ͢Δ ϓϩηε ❖ 1ͭҎ্ͷδϣϒ͔Βߏ͞ ΕɺΞΫγϣϯΛݺͼग़ͯ͠ ಛఆͷखଓ͖Λ࣮ߦ͢Δ ϫʔΫϑϩʔ
Job1 Job2 Action Action Action Action Πϕϯτ
ϫʔΫϑϩʔͷ࡞Γํ ❖ ϫʔΫϑϩʔΛτϦΨʔ͢ΔΠϕϯτΛࢦఆ ❖ ϫʔΫϑϩʔͰ࣮ߦ͢Δδϣϒ/ΞΫγϣϯΛࢦఆ ❖ ͜ΕΒΛyamlͰهड़
TopϨϕϧߏจ ❖ nameɿϫʔΫϑϩʔͷ໊લ ❖ onɿτϦΨʔ͢ΔΠϕϯτͷࢦఆ ❖ envɿͯ͢ͷjobɺstepͰ༻͢Δڥม ❖ jobsɿҰ࿈ͷ࡞ۀΛهड़͢Δ
onߏจ ❖ onɿτϦΨʔ͢ΔΠϕϯτͷࢦఆ ❖ on.<event_name>.typesɿϑΟϧλʔ͢ΔΠϕϯτͷछ ྨΛࢦఆ ❖ on.<push|pull_request>.<branches|tags>ɿϑΟϧλʔ ͢Δϒϥϯν/λάͷࢦఆ
ࢦఆͰ͖ΔΠϕϯτ ❖ WebhookΠϕϯτɿGithubͰൃੜͨ͠Πϕϯτ ❖ push/create/pull_request/etc… ❖ εέδϡʔϧΠϕϯτɿಛఆͷ࣌ؒʹ࣮ߦ͢ΔΠϕϯτ ❖ ֎෦ΠϕϯτɿGithub APIܦ༝Ͱ࣮ߦ͢ΔΠϕϯτ
jobsߏจ ❖ jobs.<job_id>ɿδϣϒͷID ❖ jobs.<job_id>.nameɿδϣϒͷ໊લɻGithub্Ͱදࣔ͞ ΕΔ ❖ jobs.<job_id>.runs-onɿ࣮ߦ͞ΕΔԾڥΛࢦఆ ❖ jobs.<job_id>.stepsɿҰཡͷλεΫΛ·ͱΊͨͷ
❖ jobs.<job_id>.steps.usesɿ࣮ߦ͢ΔΞΫγϣϯͷࢦఆ
͜Μͳײ͡ʹͳΔ
͜Μͳײ͡ʹͳΔ ϫʔΫϑϩʔ Job1 Job2 Action Action Πϕϯτ Job3 Action
͜Μͳײ͡ Push͕ൃੜͨ࣌͠ʹ
͜Μͳײ͡ ࣮ߦ͢ΔҰ࿈ͷ jobΛࢦఆͯ͠
͜Μͳײ͡ job͝ͱʹ࣮ߦ͢Δ ڥ/εςοϓΛࢦఆ
͜Μͳײ͡ ࣮ߦ͢ΔԾڥΛ ࢦఆ
͜Μͳײ͡ εςοϓ͝ͱʹ ΞΫγϣϯΛࢦఆ
͜Μͳײ͡ ॱ൪ʹδϣϒ͕ ࣮ߦ͞Εͯ ϫʔΫϑϩʔ͕ྃ͢Δ
ΞΫγϣϯͷղઆ
ΞΫγϣϯͱ ❖ ΞΫγϣϯɺϫʔΫϑϩʔͷ࠷খͷߏཁૉ ❖ OSSͰڞ༗͞ΕΔΞΫγϣϯΛར༻͢Δ͜ͱಠࣗʹΞ ΫγϣϯΛ࡞Δ͜ͱ͕Մೳ ❖ ϫʔΫϑϩʔʹεςοϓͱؚͯ͠ΊͯΞΫγϣϯΛར༻ ͢Δ
ΞΫγϣϯͷछྨ ❖ Dockerίϯςφ ❖ ΞΫγϣϯͷར༻ऀ͕πʔϧґଘؔΛߟྀ͠ͳͯ͘ࡁΉ ❖ GitHubʹϗετ͞ΕͨLinuxڥͰΈ࣮ߦͰ͖·͢ɻ ❖ JavaScript ❖
࣮ߦʹ༻͞ΕΔڥ͔ΒΓ͚Δ͜ͱ͕Ͱ͖Δ ❖ GitHubʹϗετ͞ΕͨLinuxɺMacOSɺWindowsͷԾϚ γϯͰՔಇ
ΞΫγϣϯͷछྨ ❖ Dockerίϯςφ ❖ ΞΫγϣϯͷར༻ऀ͕πʔϧґଘؔΛߟྀ͠ͳͯ͘ࡁΉ ❖ GitHubʹϗετ͞ΕͨLinuxڥͰΈ࣮ߦͰ͖·͢ɻ ❖ JavaScript ❖
࣮ߦʹ༻͞ΕΔڥ͔ΒΓ͚Δ͜ͱ͕Ͱ͖Δ ❖ GitHubʹϗετ͞ΕͨLinuxɺMacOSɺWindowsͷԾϚ γϯͰՔಇ
ϚϚϦΞϓϦͰͷΞΫγϣϯ ❖ ϦϙδτϦΞΫγϣϯ ❖ ϦϦʔεϒϥϯνΛpushͨ࣌͠ʹࣗಈͰPRΛ࡞Δ ❖ ϦϦʔεϒϥϯνΛϚʔδͨ࣌͠ʹࣗಈͰRelease NoteΛ࡞Δ ❖ OSSͷΞΫγϣϯ
❖ ϦϙδτϦͷcheckout ❖ SlackʹϦϦʔε༰ͷ௨Λ͢Δ
ϫʔΫϑϩʔ ϫʔΫϑϩʔ createReleaseNote Checkout on PR event ❖ Ϛʔδͨ࣌͠ʹࣗಈͰRelease NoteΛ࡞Δ
❖ Step1. ϦϙδτϦΛνΣοΫΞ τ ❖ Step2. ϦϦʔεϊʔτΛ࡞ ❖ ΞΫγϣϯͷதshell ϦϦʔεϊʔτ࡞
ϫʔΫϑϩʔ
ϫʔΫϑϩʔ masterϒϥϯν͚ͷ PR͕ด͡ΒΕͨ࣌ʹ
ϫʔΫϑϩʔ ϦϙδτϦΛ νΣοΫΞτͯ͠
ϫʔΫϑϩʔ ϦϦʔεϊʔτ࡞༻ͷ ΞΫγϣϯΛ࣮ߦ
ΞΫγϣϯ
ΞΫγϣϯ ϦϦʔεϊʔτຊจΛઃఆ
ΞΫγϣϯ PRͷΠϕϯτσʔλ͔Β ϨϙδτϦΛऔಘͯ͠
ΞΫγϣϯ CURLͰGithubAPIΛୟ͖ ϦϦʔεϊʔτ࡞
ΞΫγϣϯ TokenࣗಈͰڥมʹ ηοτ͞Ε͍ͯΔ
Ͱ͖ͨϦϦʔεϊʔτ
Ͱ͖ͨϦϦʔεϊʔτ Github ActionsͰ ࡞ΒΕͯΔͶʂ
ͨ͜͠ͱ ϚʔδͰͳ͘Close࣌ʹ τϦΨʔͯ͠͠·͏
ͨ͜͠ͱ ifΛͬͯɺϚʔδ࣌ʹ ݶఆͨ͠
·ͱΊ ❖ ϫʔΫϑϩʔࣗಈԽϓϩηεͷҰ࿈ͷखଓ͖ ❖ ΞΫγϣϯݸʑʹ࣮ߦ͢ΔλεΫ ❖ OSS͔Βࢀর/ࣗ࡞͕Ͱ͖Δ ❖ ϚϚϦΞϓϦͰͷར༻ࣄྫ
ͯ͞ɺ͜͜ͰએͰ͢ʂ
ࠓճͷ༰ͱશ͘ผͰ͢
͜͜ͰએͰ͢ʂ ࣗ࡞ΞΫγϣϯΛެ։ͨͧ͠ʂ
gradle-dependency-update-action ❖ ࠩͷ͋ΔgradleϑΝΠϧΛݩʹpull requestΛ࡞ͬͯ͘ ΕΔ ❖ Gradle Use Latest Versions
Pluginͷར༻Λલఔ ❖ ·ͩ·ͩࡶͳ࡞ΓͰ͢ ❖ ྑ͔ͬͨΒࢼͯ͠Έ͍ͯͩ͘͞ʂ
͍ͤͪ͝ΐ͏͋Γ͕ͱ͏ ͍͟͝·ͨ͠
Appendix ❖ yamlγϯλοΫε ❖ Πϕϯτͷछྨ ❖ https://github.com/katsutomu/gradle-dependency- update-action