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
GitHub Actions Parallel Testing
Search
Yasuhiroki
October 16, 2019
Technology
1
1k
GitHub Actions Parallel Testing
2019/10/16 GitHub Actions Meetup Tokyo β の発表資料です
Yasuhiroki
October 16, 2019
Tweet
Share
More Decks by Yasuhiroki
See All by Yasuhiroki
自分に勉強させるには
yasuhiroki
1
370
Android Studio `Command+Shift+A`
yasuhiroki
0
280
シェルスクリプトをサーバーレスで cron したい
yasuhiroki
1
700
rails new コマンド
yasuhiroki
1
610
自動化を習慣化する
yasuhiroki
2
14k
circleci.vim
yasuhiroki
0
1.4k
ベンチャー企業がCircleCIを選んだ理由と活用方法
yasuhiroki
1
690
Rubyの正規表現を調べてみた
yasuhiroki
0
670
開発者(個人)のためのJenkins 運用編
yasuhiroki
0
2k
Other Decks in Technology
See All in Technology
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
250
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
380
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
2
190
MLOpsの「壁」を乗り越える、LINEヤフーの Data Quality as Code
lycorptech_jp
PRO
5
520
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
190
ChatworkのSRE部って実は 半分くらいPlatform Engineering部かもしれない
saramune
0
160
長期間TiDBを使ってきた話 @ 私たちはなぜNewSQLを使うのかTiDB選定5社が語る選定理由と活用LT / Experiences with TiDB Over Time
chibiegg
2
900
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
0
170
APIファーストなプロダクトマネジメントの実践 〜SaaSus Platformでの例〜 / "Practicing API-First Product Management - An Example with SaaSus Platform
oztick139
0
110
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
740
反実仮想機械学習とは何か
usaito
PRO
11
4.6k
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
121
16k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
Practical Orchestrator
shlominoach
182
9.7k
A Tale of Four Properties
chriscoyier
151
22k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
17
6.4k
Designing for humans not robots
tammielis
248
25k
Fantastic passwords and where to find them - at NoRuKo
philnash
37
2.5k
Transcript
GitHub Actions Parallel Testing GitHub Actions Meetup Tokyo β A10
Lab Inc. yasuhiroki
⾃自⼰己紹介
Twitter
⾃自⼰己紹介 • A10 Lab Inc. • 元Jenkinsおじさん • 現CircleCIおじさん •
CircleCI User Community Leader
本発表の概要 • GitHub Actions で並列列テスト試してみた • 内容は個⼈人的 Tipsがメイン • 私も含め皆さんの間で情報交換するきっか
けになると嬉しい
本題
やりたいこと 複数のテストを 分割して並列列して実⾏行行したい
matrix を使えばできる • https://github.com/yasuhiroki/parallel-test- github-actions-sample/tree/ b7e78a7c731a6b0590a636ed738eddfe5b3 0f65e/.github/workflows/rspec-parallels-3- node.yml#L8
テスト時間を調整したい 6min 2min 4min 4min 4min 4min job 1 job
2 job 3 job 1 job 2 job 3
CircleCIの例例 • circleci tests split --split-by=timings は CircleCI 上で記録されたファイルごとのテスト実⾏行行 時間を元に振り分けてくれる
container 0 container 1 UFTU@@TQFDSC UFTU@@TQFDSC UFTU@@TQFDSC 過去の記録から振り分ける
knapsack • https://github.com/ArturT/knapsack • ファイルごとのテスト実⾏行行時間を JSON に出 ⼒力力してくれる • その
JSON と並列列数から良い感じに割り振っ てくれる • クラウド版もあるらしい?
knapsack の使⽤用例例 • テスト実⾏行行時間 JSON • https://github.com/yasuhiroki/parallel-test-github-actions- sample/tree/b7e78a7c731a6b0590a636ed738eddfe5b30f65e/ knapsack_rspec_report.json •
Workflow 例例 • https://github.com/yasuhiroki/parallel-test-github-actions- sample/tree/ b7e78a7c731a6b0590a636ed738eddfe5b30f65e/.github/ workflows/rspec-parallels-knapsack.yml#L21
テスト結果を集計したい
• artifact を使う テスト結果を集計したい uses: actions/upload-artifact@master with: name: reports path:
reports reports
• artifact を使う テスト結果を集計したい uses: actions/download-artifact@master with: name: reports reports
毎回 install するのやめたい • キャッシュ機能がリリースされるのを待とう
毎回 install するのやめたい • 同じ Workflow 内なら artifact が使えるかも? •
upload が遅くて逆効果だった • https://github.com/yasuhiroki/enjoy- github-actions/commit/ 9e8e9de9c6898f1fc9f491fe11e75e87a4b 5d0cb/checks?check_suite_id=266056589
リポジトリURL • https://github.com/yasuhiroki/enjoy-github- actions • https://github.com/yasuhiroki/parallel-test- github-actions-sample
Tips集紹介
actions/github-script • JavaScriptを直接 YAML に書けちゃう •
GitHub token 取得⽅方法 • 実は2パターン書き⽅方がある • secrets.GITHUB_TOKEN • github.token •
commit_comment is not a valid event name • 急に is
not a valid って⾔言われるようになった
ご清聴ありがとうございました