5 найкращих практик GitLab CI/CD для швидших пайплайнів
Після років роботи з GitLab CI/CD у різних проєктах, ось п’ять практик, які постійно забезпечують швидші та надійніші пайплайни.
1. Розумно використовуйте кешування
Кешуйте залежності між джобами, щоб уникнути повторного завантаження:
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
- .npm/
key забезпечує окремі кеші для різних гілок.
2. Паралелізуйте тести
Розділіть тестовий набір на кілька джобів:
test:
parallel: 4
script:
- npm run test -- --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL
Це може скоротити час тестування з 20 хвилин до 5.
3. Використовуйте rules: замість only/except
Новіший синтаксис rules: потужніший та читабельніший:
deploy:
rules:
- if: $CI_COMMIT_BRANCH == "main"
when: on_success
- when: never
4. Оптимізуйте Docker образи
Використовуйте маленькі базові образи та multi-stage збірки. Образи на базі Alpine можуть бути в 10 разів меншими за Ubuntu-based.
5. Швидко провалюйтесь
Ставте швидкі перевірки (лінтинг, форматування) на початок пайплайну. Немає сенсу запускати 20-хвилинний тестовий набір, якщо код навіть не компілюється.
Які ваші улюблені оптимізації CI/CD? Ми б раді про них почути.