Running FOSS and EE frontend fixtures for the same folder can lead to missing fixtures
We have https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/frontend/fixtures/api_markdown.rb and https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/spec/frontend/fixtures/api_markdown.rb which both write their fixture files to /tmp/tests/frontend/fixtures-ee/api/markdown/
.
The problem is that after !71308 (merged), it could happen that both fixture generators could run in the same job. In that case, the last one to run would remove all the fixtures generated by the first one due to the clean_frontend_fixtures(fixture_subdir)
call in the before
block.
This can reproduced locally:
If you run the EE fixture first, then the FOSS one, the EE fixture is missing:
~/C/Gi/gdk/gitlab improve-review-apps-docs *3 be rspec ee/spec/frontend/fixtures/api_markdown.rb spec/frontend/fixtures/api_markdown.rb ✔ 12:04:27
Run options: include {:focus=>true}
All examples were filtered out; ignoring {:focus=>true}
Test environment set up in 10.632847 seconds
...........................................
Finished in 39.61 seconds (files took 38.19 seconds to load)
43 examples, 0 failures
~/C/Gi/gdk/gitlab improve-review-apps-docs *3 ll tmp/tests/frontend/fixtures-ee/api/markdown ✔ 12:13:41
total 336
-rw-r--r-- 1 remy staff 458B Sep 30 12:05 audio.json
-rw-r--r-- 1 remy staff 3.6K Sep 30 12:05 audio_and_video_in_lists.json
-rw-r--r-- 1 remy staff 252B Sep 30 12:05 blockquote.json
-rw-r--r-- 1 remy staff 119B Sep 30 12:05 bold.json
-rw-r--r-- 1 remy staff 365B Sep 30 12:05 bullet_list_style_1.json
-rw-r--r-- 1 remy staff 365B Sep 30 12:05 bullet_list_style_2.json
-rw-r--r-- 1 remy staff 365B Sep 30 12:05 bullet_list_style_3.json
-rw-r--r-- 1 remy staff 674B Sep 30 12:05 code_block.json
-rw-r--r-- 1 remy staff 586B Sep 30 12:05 description_list.json
-rw-r--r-- 1 remy staff 214B Sep 30 12:05 div.json
-rw-r--r-- 1 remy staff 441B Sep 30 12:05 emoji.json
-rw-r--r-- 1 remy staff 123B Sep 30 12:05 emphasis.json
-rw-r--r-- 1 remy staff 1.0K Sep 30 12:05 figure.json
-rw-r--r-- 1 remy staff 792B Sep 30 12:05 frontmatter_json.json
-rw-r--r-- 1 remy staff 454B Sep 30 12:05 frontmatter_toml.json
-rw-r--r-- 1 remy staff 450B Sep 30 12:05 frontmatter_yaml.json
-rw-r--r-- 1 remy staff 720B Sep 30 12:05 group_attachment_image.json
-rw-r--r-- 1 remy staff 365B Sep 30 12:05 group_attachment_link.json
-rw-r--r-- 1 remy staff 127B Sep 30 12:05 hard_break.json
-rw-r--r-- 1 remy staff 1.2K Sep 30 12:05 headings.json
-rw-r--r-- 1 remy staff 52B Sep 30 12:05 horizontal_rule.json
-rw-r--r-- 1 remy staff 3.1K Sep 30 12:05 html_marks.json
-rw-r--r-- 1 remy staff 398B Sep 30 12:05 image.json
-rw-r--r-- 1 remy staff 115B Sep 30 12:05 inline_code.json
-rw-r--r-- 1 remy staff 351B Sep 30 12:05 inline_diff.json
-rw-r--r-- 1 remy staff 195B Sep 30 12:05 link.json
-rw-r--r-- 1 remy staff 293B Sep 30 12:05 ordered_list.json
-rw-r--r-- 1 remy staff 307B Sep 30 12:05 ordered_list_with_start_order.json
-rw-r--r-- 1 remy staff 1.3K Sep 30 12:05 ordered_task_list.json
-rw-r--r-- 1 remy staff 646B Sep 30 12:05 ordered_task_list_with_order.json
-rw-r--r-- 1 remy staff 720B Sep 30 12:05 project_attachment_image.json
-rw-r--r-- 1 remy staff 365B Sep 30 12:05 project_attachment_link.json
-rw-r--r-- 1 remy staff 460B Sep 30 12:05 project_wiki_attachment_image.json
-rw-r--r-- 1 remy staff 257B Sep 30 12:05 project_wiki_attachment_link.json
-rw-r--r-- 1 remy staff 2.0K Sep 30 12:05 project_wiki_reference.json
-rw-r--r-- 1 remy staff 112B Sep 30 12:05 strike.json
-rw-r--r-- 1 remy staff 1.1K Sep 30 12:05 table.json
-rw-r--r-- 1 remy staff 1.6K Sep 30 12:05 table_of_contents.json
-rw-r--r-- 1 remy staff 1.3K Sep 30 12:05 task_list.json
-rw-r--r-- 1 remy staff 52B Sep 30 12:05 thematic_break.json
-rw-r--r-- 1 remy staff 493B Sep 30 12:05 video.json
-rw-r--r-- 1 remy staff 243B Sep 30 12:05 word_break.json
If you run the FOSS fixture first, then the EE one, the FOSS fixtures are missing:
~/C/Gi/gdk/gitlab improve-review-apps-docs *3 be rspec spec/frontend/fixtures/api_markdown.rb ee/spec/frontend/fixtures/api_markdown.rb ✔ 12:13:46
All examples were filtered out; ignoring {:focus=>true}
Test environment set up in 8.98944 seconds
...........................................
Finished in 36.61 seconds (files took 39.45 seconds to load)
43 examples, 0 failures
~/C/Gi/gdk/gitlab improve-review-apps-docs *3 ll tmp/tests/frontend/fixtures-ee/api/markdown ✔ 1m 20s 12:15:18
total 8
-rw-r--r-- 1 remy staff 255B Sep 30 12:15 group_wiki_attachment_link.json