Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

golang-parallel-test-by-github-actions-and-merg...

Avatar for SatoKeiju SatoKeiju
December 11, 2024
1.1k

 golang-parallel-test-by-github-actions-and-merge-coverage-report

Avatar for SatoKeiju

SatoKeiju

December 11, 2024
Tweet

Transcript

  1. 遅くなった䞻な理由: マシンスペック(コア数) Docker 実行環境の䜿甚 - CircleCI GitHub Actions CircleCI About

    GitHub-hosted runners - GitHub Enterprise Cloud Docs ↑のドキュメントぱンプラですが Cloudも同じです
  2. Rubyで甚いし先駆者がいた GitHub Actions でテストを䞊列化しお CI 時間を短瞮する - Gunosy Tech Blog

    䞊列化したい数だけ IDを宣蚀しおおいお 党テストをいい感じに 各IDに割り振っお
  3. Rubyで甚いし先駆者がいた GitHub Actions でテストを䞊列化しお CI 時間を短瞮する - Gunosy Tech Blog

    䞊列化したい数だけ IDを宣蚀しおおいお 各ノヌドは自分の IDの テストだけ実行 党テストをいい感じに 各IDに割り振っお
  4. Rubyで甚いし先駆者がいた GitHub Actions でテストを䞊列化しお CI 時間を短瞮する - Gunosy Tech Blog

    䞊列化したい数だけ IDを宣蚀しおおいお 各ノヌドは自分の IDの テストだけ実行 党テストをいい感じに 各IDに割り振っお これをGoでも やりたい
  5. Goは玠晎らしい蚀語なので $ go test -cover ./... -coverprofile=<ファむル名>.out でテスト時にカバレッゞのプロファむルを吐き出しおおき $ go

    tool cover -html=<ファむル名>.out -o <ファむル名>.html  でカバレッゞレポヌトを䜜れる 唯䞀の懞念点: カバレッゞレポヌトどうしよう
  6. 唯䞀の懞念点: カバレッゞレポヌトどうしよう Goは玠晎らしい蚀語なので $ go test -cover ./... -coverprofile=<ファむル名>.out でテスト時にカバレッゞのプロファむルを吐き出しおおき

    $ go tool cover -html=<ファむル名>.out -o <ファむル名>.html  でカバレッゞレポヌトを䜜れる でもnノヌドで分割実行したら现切れのカバレッゞレポヌトが n個できちゃう
  7. 唯䞀の懞念点: カバレッゞレポヌトどうしよう Goは玠晎らしい蚀語なので $ go test -cover ./... -coverprofile=<ファむル名>.out でテスト時にカバレッゞのプロファむルを吐き出しおおき

    $ go tool cover -html=<ファむル名>.out -o <ファむル名>.html  でカバレッゞレポヌトを䜜れる でもnノヌドで分割実行したら现切れのカバレッゞレポヌトが n個できちゃう → 結論: プロファむルの仕様で (無理やり)解決