я сделал отдельную таску cleanup и в ней удаляю всё что создалось - data volume с артефактами сборки и image который создавался, чтобы в нём тесты и сборку гонять
да, но ты это добавляешь в .gitlab-ci.yml и что получиться, если 2 билда параллельно идут и 1 завершился он выполняет этот таск и убивает gitlab-runners? Так же будет конфликтовать с параллельными билдами, или ты по каким то фильтрам или командам определяешь какие тебе образы удалить?