Скорее всего вы правы, я в этом деле еще профан. А можете чуть более конкретно описать, как это сделать? Или может знаете пару хороших статей на этот счет?
test_integration:
script:
- docker-compose -f docker-compose.test.yml up --abort-on-container-exit
Параллельный запуск тестов
stages:
- build
- test
unit_test:
stage: test
script: docker run --rm myapp npm test
integration_test:
stage: test
script: docker-compose -f docker-compose.test.yml up --abort-on-container-exit
e2e_test:
stage: test
script: docker run --rm myapp npm run test:e2e
Я призналась еще в начале, что сама не писала test, но насколько я предполагаю, ответ ии плюс минус верный, учитывая мой небольшой опыт
как вариант
Скорее всего вы правы, я в этом деле еще профан. А можете чуть более конкретно описать, как это сделать? Или может знаете пару хороших статей на этот счет?
Если использовать чуть более специализированные тесты, то:
Пишем что-то в docker-compose.test.yml:
В пайплайне будет выглядеть так:
Параллельный запуск тестов
Если честно, сама я такое не писала, но если чисто в теории, то в том же файле можно написать этап test.
Для GitLab CI (.gitlab-ci.yml):
Для GitHub Actions (.github/workflows/ci.yml):
Сначала собираем образ
Затем тестируем:
Загружаем собранный в билде образ из временного файла myapp.tar
Запускаем docker run --rm с командой тестов
Если тесты упадут - пайплайн остановится
Деплоим только если тесты прошли (все тот же образ myapp.tar)