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
560
githubactions-potetotips.pdf
katsutomu
February 12, 2020
Tweet
Share
More Decks by katsutomu
See All by katsutomu
チームで進めるRenovate
katsutomu
0
60
CDC Testing試してみた
katsutomu
0
2.7k
Other Decks in Programming
See All in Programming
APIのない大学ログインWebサービスをWKWebViewとJavaScriptでアプリ化した話
akidon0000
1
330
[After Kotlin Fest 2024 LT Night @ Sansan] もっともっとKotlinを好きになる!K2 Compiler Pluginで遊んでみよう!
kitakkun
2
260
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
7
3k
Prompt FlowによるLLMアプリケーション開発
yuto2000
1
1k
The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform | droidcon Berlin
prof18
0
110
Harnessing Large Language Models for Training-free Video Anomaly Detection
tereka114
1
1.3k
日付と正規化
megmogmog1965
0
140
3 Effective Rules for Success with Signals in Angular
manfredsteyer
PRO
0
120
社内 LT 会を発足し、アウトプット文化を醸成させるために考えたこと・やったこと / Starting internal LT meetings and fostering an output culture
mackey0225
3
120
Introduction to GitOps
hwchiu
0
110
君たちはどうコードをレビューする (される) か / 大吉祥寺.pm
utgwkk
15
8.5k
Temporalを取り巻く仕様を整理する
sajikix
0
110
Featured
See All Featured
Bash Introduction
62gerente
607
210k
Fireside Chat
paigeccino
25
2.8k
Fontdeck: Realign not Redesign
paulrobertlloyd
79
5.1k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
36
9.1k
Optimizing for Happiness
mojombo
373
69k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
129
32k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
Building an army of robots
kneath
301
42k
10 Git Anti Patterns You Should be Aware of
lemiorhan
652
58k
Embracing the Ebb and Flow
colly
81
4.3k
Agile that works and the tools we love
rasmusluckow
325
20k
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