Clean up integration test sharding
- 主要言語
- Dart
- スター
- 1.7k
- フォーク
- 404
- 平均マージ
- 6日 17時間
- マージ済み PR(30日)
- 18
説明
Right now, we have an ugly matrix to implement the sharding: https://github.com/flutter/devtools/pull/6385
To improve this we could pull out the integration test into it's own callable workflow that we pass a shard number to:
Calling the 3 devices would then look something like this;
```
flutter-integration-test:
name: integration-test ${{ matrix.bot }} - flutter
needs: flutter-prep
runs-on: macos-latest
uses: ./github/workflows/integration-test.yaml
with:
shards: 3
device: flutter
flutter-web-integration-test:
name: integration-test ${{ matrix.bot }} - flutter-web
needs: flutter-prep
runs-on: macos-latest
uses: ./github/workflows/integration-test.yaml
with:
shards: 3
device: flutter-web
```
All of the steps and environment variables would then be pulled into the ./github/workflows/integration-test.yaml
workflow file using a callable workflow dispatch https://docs.github.com/en/actions/using-workflows/reusing-workflows#calling-a-reusable-workflow
Then to handle the sharding weirdness we could use seperate step at the top of that workflow to generate and array that would be fed to the matrix:
See the "From Json to Fully Dynamic Matrix" section here https://tomasvotruba.com/blog/2020/11/16/how-to-make-dynamic-matrix-in-github-actions
the step to generate the array would essentially make it so we could have:matrix:
`shard: ${{}}`
コントリビューションガイド
評価
この issue はまだ評価されていません。