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
モノレポのプルリクエストに最近、導入したもの
Search
Hiroyuki Kusu
June 03, 2024
Technology
2
440
モノレポのプルリクエストに最近、導入したもの
YUMEMI.grow (
https://yumemi.connpass.com/event/318110/
) の資料
Hiroyuki Kusu
June 03, 2024
Tweet
Share
More Decks by Hiroyuki Kusu
See All by Hiroyuki Kusu
GitHub composite actions
hkusu
2
310
Android の静的解析における SARIF ファイルの活用
hkusu
0
4.7k
CI_でライブラリのバージョンの変化をレポートする.pdf
hkusu
0
310
Maestro を GitHub Actions で動かす 〜Android編〜
hkusu
1
1.3k
Android の CI(GitHub Actions)の改善で、最近やったこと
hkusu
0
570
Tauri Mobile で生成される Android のコードを見てみる
hkusu
0
1.3k
Custom GitHub Actions を作って Organization 内で共有する
hkusu
1
500
GitHub Actions でユニットテストの結果をレポートする
hkusu
0
3.3k
Android で Multiplatform Settings を使う
hkusu
0
950
Other Decks in Technology
See All in Technology
Perlの生きのこり - エンジニアがこの先生きのこるためのカンファレンス2025
kfly8
1
250
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
530
分解して理解する Aspire
nenonaninu
2
780
遷移の高速化 ヤフートップの試行錯誤
narirou
6
990
実は強い 非ViTな画像認識モデル
tattaka
1
1.1k
Windows の新しい管理者保護モード
murachiakira
0
200
Pwned Labsのすゝめ
ken5scal
0
290
わたしのOSS活動
kazupon
2
340
Reading Code Is Harder Than Writing It
trishagee
2
120
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
200
Apache Iceberg Case Study in LY Corporation
lycorptech_jp
PRO
0
270
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
350
Featured
See All Featured
Code Review Best Practice
trishagee
67
18k
Site-Speed That Sticks
csswizardry
4
400
How STYLIGHT went responsive
nonsquared
98
5.4k
It's Worth the Effort
3n
184
28k
Faster Mobile Websites
deanohume
306
31k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Done Done
chrislema
182
16k
Being A Developer After 40
akosma
89
590k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
Fireside Chat
paigeccino
34
3.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Transcript
ϞϊϨϙͷϓϧϦΫΤετʹ ࠷ۙɺಋೖͨ͠ͷ 2024.6.3 YUMEMI.grow ϓϧϦΫΤετͱίʔυϨϏϡʔͰ։ൃΛՃͤ͞ΔLTձ Hiroyuki Kusu ( @hkusu_ )
About me
લఏɿ͜ͷεϥΠυͰͷϞϊϨϙͷఆٛ • 1ͭͷϦϙδτϦʹෳͷαϒγεςϜͷίʔυ͕ଘࡏ • গͳ͘ͱ͜ͷεϥΠυͰ͜ͷΑ͏ʹఆٛ • γϯϓϧʹαϒγεςϜຖʹσΟϨΫτϦ͕ผͱ͠·͢
1. ࣗಈͰϨϏϡΞΛઃఆ
/server @server-team /front @front-team ... 1. ࣗಈͰϨϏϡΞΛઃఆ .github/CODEOWNERS
2. ඞཁͳαϒγεςϜͷΈ࣮ߦ
- uses: yumemi-inc/path-filter@v2 with: patterns: | front/** !front/doc/** run: |
cd front/ npm run test 2. ඞཁͳαϒγεςϜͷΈ࣮ߦ ྫɿϓϧϦΫͰ front/ Լͷίʔυ͕มߋ͞Ε͍ͯΔ߹ͷΈςετΛ࣮ߦ ※ ϫʔΫϑϩʔؙ͝ͱ࣮ߦ͢Δ/͠ͳ͍ͷ੍ޚͰΑ͍߹ϫʔΫϑϩʔͷτϦΨʔ݅ͷ paths ͰΑ͍Ͱ͢
2. ඞཁͳαϒγεςϜͷΈ࣮ߦ https://github.com/marketplace/actions/path- fi lter ར༻͍ͯ͠Δ actionɿ
2. ඞཁͳαϒγεςϜͷΈ࣮ߦ • ͕͔͔࣌ؒΔςετϏϧυΛεϧʔ͢ΔͷʹޮՌత • ෆཁͳσϓϩΠࢭ͢Δ͜ͱ͕ग़དྷΔ
3. ࣗಈͰϓϧϦΫʹϥϕϧΛ༩
3. ࣗಈͰϓϧϦΫʹϥϕϧΛ༩ • ͲͷαϒγεςϜͷϓϧϦΫͳͷ͔ͷϥϕϧ͕͍͍ͭͯΔͱ͔Γ͍͢ • ͨͩखಈͰϥϕϧΛ༩͢Δͷ໘ͩ͠ɺؒҧ͑ΔՄೳੑ
env: GH_REPO: ${{ github.repository }} GH_TOKEN: ${{ github.token }} steps:
- uses: yumemi-inc/path-filter@v2 with: patterns: 'server/**' run: gh pr edit ${{ github.event.number }} --add-label 'server' run-if-not: gh pr edit ${{ github.event.number }} --remove-label 'server' - uses: yumemi-inc/path-filter@v2 with: patterns: 'front/**' run: gh pr edit ${{ github.event.number }} --add-label 'front' ɹ run-if-not: gh pr edit ${{ github.event.number }} --remove-label ‘front' … 3. ࣗಈͰϓϧϦΫʹϥϕϧΛ༩ ※ actions/labeler ͕αϙʔτ͍ͯ͠ͳ͍݅Ͱϥϕϧ͚Ͱ͖ΔΑ͏͜͏͍ͯ͠·͢
4. ϒϥϯν໊ͷνΣοΫ
4. ϒϥϯν໊ͷνΣοΫ • ϞϊϨϙʹ͓͍ͯɺ௨ৗͷ git- fl ow ͷϒϥϯνʹՃ͑ͯɺαϒγες Ϝ༻ͷϒϥϯνΛ࡞ͬͨΓ
pre fi x Λ͚ͭͨΓ͕ͪ͠ʢݸਓతͳ؍ଌʣ • ྫɿ feature/server/hogeɺhot fi x/front/fuga • .. ͓ͷͣͱϒϥϯνͷӡ༻ϧʔϧෳࡶͱͳΔͷͰػցతʹνΣοΫ
- name: Fail if head branch name is invalid if:
|- !( github.head_ref == 'develop' || startsWith(github.head_ref, 'feature/server/') || startsWith(github.head_ref, 'feature/front/') || ... ) uses: yumemi-inc/comment-pull-request@v1 with: comment: | Head branch name is invalid. fail: true 4. ϒϥϯν໊ͷνΣοΫ ϓϧϦΫʹίϝϯτͭͭ͠ϫʔΫϑϩʔΛམͱ͢ ※ ࣮ࡍͷӡ༻Ͱ head ϒϥϯνຖͷ base ϒϥϯν໊ͷνΣοΫʢ͖ઌ͕ਖ਼͍͔͠ʣ͍ͯ͠·͢
4. ϒϥϯν໊ͷνΣοΫ https://github.com/marketplace/actions/comment-pull-request-for-work fl ow ར༻͍ͯ͠Δ actionɿ
5. αϒɾϓϧϦΫΤετҰཡΛίϝϯτ
5. αϒɾϓϧϦΫΤετҰཡΛίϝϯτ ͋Δػೳ a ͷϓϧϦΫʹɺαϒγεςϜ bɺc ͷϓϧϦΫؚ͕·ΕΔέʔε ʢػೳ a
ͷ࣮ݱʹɺෳͷαϒγεςϜΛލͬͨίʔυͷमਖ਼͕ඞཁͳ߹ʣ feature/a ← feature/sub_b ͷϓϧϦΫ feature/a ← feature/sub_c ͷϓϧϦΫ develop ← feature/a ͷϓϧϦΫ Ϛʔδ Ϛʔδ
5. αϒɾϓϧϦΫΤετҰཡΛίϝϯτ develop ← feature/a ͷϓϧϦΫʹίϝϯτ
5. αϒɾϓϧϦΫΤετҰཡΛίϝϯτ - name: List associated pull request numbers
uses: yumemi-inc/associated-pull-requests@v1 id: associated-pr with: format: 'markdown' merge-commit-only: false - name: Comment if: steps.associated-pr.outputs.numbers != null uses: yumemi-inc/comment-pull-request@v1 with: comment: | ### pull requests merged into this pull request: ${{ steps.associated-pr.outputs.numbers }} previous-comment: 'hide' Ϛʔδͷӡ༻࣍ୈ͕ͩ false ͷํ͕औΓ͜΅͕͠ແ҆͘ṛ ʢͨͩίϛοτཤྺ͕͍߹͕͔͔࣌ؒΔʣ
5. αϒɾϓϧϦΫΤετҰཡΛίϝϯτ https://github.com/marketplace/actions/associated-pull-requests ར༻͍ͯ͠Δ actionɿ
5. αϒɾϓϧϦΫΤετҰཡΛίϝϯτ • ϦϦʔε༻ͷϓϧϦΫͰɺϦϦʔεʹؚ·ΕΔϓϧϦΫͷҰཡΛίϝϯτ ͢ΔΑ͏ͳ͍ํͰ͖Δ
5. αϒɾϓϧϦΫΤετҰཡΛίϝϯτ https://zenn.dev/yumemi_inc/articles/3ed5a217cf3cbb
6. Bitrise ͷϫʔΫϑϩʔΛ GitHub Actions Ͱ࣮ߦ
6. Bitrise ͷϫʔΫϑϩʔΛ GitHub Actions Ͱ࣮ߦ - uses: yumemi-inc/path-filter@v2
id: filter with: patterns: 'ios/**' - if: steps.filter.outputs.exists == 'true' uses: p-mazhnik/bitrise-run-build@v1 with: bitrise-app-slug: 'your-app-slug' bitrise-token: ${{ secrets.YOUR_TOKEN }} bitrise-workflow: 'your-workflow-name' listen: true skip-git-status-report: true - if: failure() ... ྫ͑αϒγεςϜ͏ͪ iOS Bitrise ͰϏϧυ͢Δɺͱ͍͏έʔε ݁ՌΛͬͯ࣍ͷ step Λ࣮ߦͰ͖Δʂ
6. Bitrise ͷϫʔΫϑϩʔΛ GitHub Actions Ͱ࣮ߦ https://github.com/marketplace/actions/bitrise-build-runner ར༻͍ͯ͠Δ actionɿ
6. Bitrise ͷϫʔΫϑϩʔΛ GitHub Actions Ͱ࣮ߦ • Bitrise ͷϫʔΫϑϩʔΛ
GitHub Actions ͷ 1 step ͱͯ͠ΈࠐΊΔͷ Ͱͱͯศར
Thank you ! @hkusu_ ฐࣾ Android ΤϯδχΞΛ ઈࢍืूத Ͱ͢ʂ