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
700
githubactions-potetotips.pdf
katsutomu
February 12, 2020
Tweet
Share
More Decks by katsutomu
See All by katsutomu
チームで進めるRenovate
katsutomu
0
75
CDC Testing試してみた
katsutomu
0
2.8k
Other Decks in Programming
See All in Programming
Foundation Modelsを実装日本語学習アプリを作ってみた!
hypebeans
0
120
Building, Deploying, and Monitoring Ruby Web Applications with Falcon (Kaigi on Rails 2025)
ioquatix
4
2.2k
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
150
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
200
Android16 Migration Stories ~Building a Pattern for Android OS upgrades~
reoandroider
0
120
CSC305 Lecture 06
javiergs
PRO
0
250
はじめてのDSPy - 言語モデルを『プロンプト』ではなく『プログラミング』するための仕組み
masahiro_nishimi
2
590
Introduce Hono CLI
yusukebe
6
2.7k
20251016_Rails News ~Rails 8.1の足音を聴く~
morimorihoge
2
480
コードとあなたと私の距離 / The Distance Between Code, You, and I
hiro_y
0
170
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
210
開発生産性を上げるための生成AI活用術
starfish719
3
1.2k
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
232
18k
BBQ
matthewcrist
89
9.8k
Rails Girls Zürich Keynote
gr2m
95
14k
Site-Speed That Sticks
csswizardry
13
910
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Music & Morning Musume
bryan
46
6.8k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Typedesign – Prime Four
hannesfritz
42
2.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
A Modern Web Designer's Workflow
chriscoyier
697
190k
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