diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3888e8d44f..a79bf08563 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -155,18 +155,22 @@ jobs: timeout-minutes: 10 steps: - name: Download all slice durations + # Each slice uploads the same file name (test_durations.json). + # With merge-multiple, the parallel downloads write to one path. + # This causes two problems: a race can write two JSON documents + # into one file, and the last write erases the other slices. + # Without merge-multiple, each artifact gets its own directory. uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: pattern: test-durations-slice-* path: durations - merge-multiple: true - name: Merge into single durations file run: | python3 -c " import json, glob, os merged = {} - for f in glob.glob('durations/*test_durations.json'): + for f in glob.glob('durations/*/test_durations.json'): with open(f) as fh: merged.update(json.load(fh)) with open('test_durations.json', 'w') as fh: