Deployments and environments
Пояснює environments, protection rules, variables, secrets і межу isolation self-hosted runners.
1. Теорія CI/CD та як ви можете інтегрувати тести в пайплайн → Першоджерело ↗Відеобібліотека
Пошук у нотатках курсу Python мануфактура та спільних матеріалах з переходом на потрібну секунду.
Пояснює environments, protection rules, variables, secrets і межу isolation self-hosted runners.
1. Теорія CI/CD та як ви можете інтегрувати тести в пайплайн → Першоджерело ↗Пояснює ізоляцію, створення та життєвий цикл virtual environment.
1. Налаштування PyCharm, JetBrains Toolbox, створення проєкту та структура проектів → Першоджерело ↗Runner повинен отримати base URLs, users, passwords, tokens та інші параметри без commit у репозиторій. У GitHub Actions значення можна зберігати як repository secrets/variables або прив’язувати до environments на кшталт DEV, STG і PROD. Environment-level значення зручні, коли ті самі ключі мають різні значення та правила доступу для різних середовищ. На реальному проєкті права на створення або зміну secrets можуть належати не автоматизатору. Це окрема залежність від власників репозиторію чи DevOps-команди, яку треба з’ясувати заздалегідь. Для малого набору параметрів не потрібно будувати складну config-систему: достатньо найпростішого контрольованого scope, який не розкриває секрети.
[Дивитися з 32:00](https://www.youtube.com/watch?v=jAl2Qf8Zlyg&t=1920s). Manual QA тепер простіше згенерувати system tests проти повного test environment, використати API preconditions і автоматизувати ticket/report workflow через CLI або MCP. Аналогічно DevOps швидше будує CI/CD та preview environments: subdomain, DNS, application і database lifecycle для кожного PR. AI підсилює кожну роль, але якість результату залежить від її предметної експертизи.
Один репозиторій запускається локально й у CI проти dev, preprod або інших середовищ. Сервіси можуть залежати від баз даних і зовнішніх third-party систем, інколи спільних для кількох середовищ. Локальний ноутбук часто отримує доступ до закритої мережі лише через VPN, тому той самий маршрут не можна автоматично перенести на hosted runner.
Popup, який використовується на кількох сторінках, є природним кандидатом на окремий object. Назву варто шукати в його heading, `data-testid`, class або іншому атрибуті найближчого контейнера. Так automation-модель повторює структуру продукту й полегшує пошук коду. Якщо test environments обфускують усі стабільні назви, це варто обговорити з frontend-командою: production може мати обфускацію, але dev/stage потребують передбачуваного test contract. Водночас не можна прив’язувати неймінг чи selectors до випадкових inline styles або кольорів.
Базовий onboarding для всіх рівнів включає documentation, доступи, checkout репозиторію та перевірку Jira/CI. Наступну невелику задачу варто обрати за конкретним плюсом, заради якого людину наймали: fintech, maps, CAPTCHA, OTP чи інша domain expertise. Від senior очікується ширше дослідження infrastructure, access, environments і rate limits; middle може зосередитися на локальній реалізації.
Device matrix слід будувати за production analytics: OS versions, vendor/model, screen resolution, update rate та частка foldable devices. Ще корисніше зіставити ці дані з користувачами, які приносять основний revenue, щоб бюджет на реальні пристрої відповідав бізнес-ризику. Стандартні platform components зменшують ризик, але Samsung, Huawei та інші vendors можуть мати власні UI/OS особливості й різну доступність Google services. Для dev build варто додати простий environment switcher між dev, QA, stage і production endpoints, а logs збирати через Xcode/Android Studio.