Перейти до вмісту

CI / CD (act)

SnakeFlow інтегрується з act — інструментом, що запускає GitHub Actions workflows локально в Docker-контейнерах. Ви отримуєте те саме виконання workflow, що й на GitHub CI, але на своїй машині, без push.

Вимоги

  • act CLI — встановити з nektosact.com
  • Docker Desktop (або будь-який сумісний Docker runtime) — act використовує Docker для виконання кроків workflow

Запуск workflow

Відкрийте Command Palette (Ctrl+Shift+P) і виконайте SnakeFlow: GitHub Actions (act) (або знайдіть у Quality Hub, якщо там є).

З’являється двокроковий вибір:

  1. Вибір workflow — усі .yml / .yaml файли з .github/workflows/ перелічені з тригерами і кількістю jobs
  2. Вибір job — оберіть конкретний job або запустіть усі

Якщо вибраний workflow посилається на ${{ secrets.* }}, крок налаштування секретів відкривається автоматично (див. Секрети нижче).

Секрети

Workflows, яким потрібні API-токени, credentials або environment-specific значення, оголошують їх як ${{ secrets.NAME }}. SnakeFlow автоматично знаходить усі посилання на секрети у файлі workflow — ручне налаштування не потрібне.

Введення секретів

Виконайте SnakeFlow: Manage CI Secrets з Command Palette. Відкривається список усіх секретів, знайдених у всіх workflow-файлах проєкту:

  • $(check) NAME — значення збережено; відображається як ●●●●●●●● (stored)
  • $(circle-slash) NAME — ще не задано; клікніть, щоб ввести значення

Введіть значення в захищеному InputBox. Значення зберігаються у VS Code SecretStorage — зашифроване сховище на основі ключниці ОС (Windows Credential Manager / macOS Keychain / libsecret). Вони ніколи не потрапляють на диск або в git.

Секрети прив’язані до проєкту та машини — кожен розробник зберігає свої credentials локально. Це навмисно: credentials не виходять за межі машини.

Секрети та Quality Hub

Коли перевірка act (CI local) запускається в Quality Hub (Ctrl+Alt+F), вона автоматично читає ті самі збережені секрети і передає їх як --secret NAME флаги та env-змінні. Жодних ручних кроків — налаштуйте секрети один раз через Manage CI Secrets, і їх використовуватимуть як інтерактивний запуск, так і Quality Hub.

Які секрети потрібні

Це залежить виключно від ваших workflows. SnakeFlow не знає і не прив’язаний до конкретних провайдерів — він сканує патерни ${{ secrets.* }} і показує кожне знайдене ім’я. Типові приклади:

Призначення workflowТипові імена секретів
Деплой у будь-який хмарний провайдерAPI-токен провайдера (залежить від платформи)
Міграції бази данихDATABASE_URL, DIRECT_URL
Container registryREGISTRY_TOKEN, DOCKER_PASSWORD
Сканери безпекиSEMGREP_APP_TOKEN, SNYK_TOKEN
Сервіси сповіщеньSLACK_WEBHOOK, DISCORD_TOKEN

GITHUB_TOKEN надається act автоматично — встановлювати його не потрібно, якщо ви не хочете перевизначити значення.

Quality Hub — перевірка act

Провайдер builtin-act у Quality Hub запускає всі (або відфільтровані) workflows у фоні в рамках повного сканування якості і показує pass/fail по кожному workflow.

Очікувана поведінка за відсутності секретів локально:

  • Workflows, що потребують credentials хмарного провайдера (deploy pipelines, remote scanners), завершаться з помилкою або пропустяться — це очікувано і не є проблемою коду
  • Lint, type-check, build та unit-test jobs зазвичай не потребують секретів і проходять нормально

Налаштування

"devManager.ci.workflowsPath": ".github/workflows",
"devManager.ci.actExtraArgs": "",
"devManager.quality.builtin.act.enabled": true,
"devManager.quality.builtin.act.workflow": "",
"devManager.quality.builtin.act.trigger": "push"
НалаштуванняЗа замовчуваннямОпис
devManager.ci.workflowsPath.github/workflowsВідносний шлях до workflow-файлів
devManager.ci.actExtraArgs""Додаткові флаги для кожного виклику act (наприклад, --platform ubuntu-latest=...)
devManager.quality.builtin.act.enabledtrueУвімкнути/вимкнути в Quality Hub
devManager.quality.builtin.act.workflow""Фільтр за назвою файлу — запускати тільки workflows, чия назва містить цей рядок
devManager.quality.builtin.act.triggerpushТригер події для симуляції (push, pull_request, workflow_dispatch)

Команди

КомандаОпис
SnakeFlow: GitHub Actions (act)Інтерактивний вибір workflow + job, потім запуск
SnakeFlow: Manage CI SecretsВстановити / оновити / очистити збережені секрети для поточного проєкту

Міграції в GitHub Actions

Локальний Quality Hub ловить багато помилок у міграціях, але CI має запускати ті самі класи команд, щоб merge не залежав лише від машини розробника (і щоб git commit --no-verify не обходив політику команди).

Вбудована перевірка Migrations CI Gate (devManager.quality.builtin.migrationsCiGate.enabled, за замовчуванням увімкнена) сканує .github/workflows/*.{yml,yaml} на кроки з інструментами безпеки міграцій — наприклад prisma migrate diff, drizzle-kit check, atlas migrate validate, SnakeFlow / cruise:err тощо. Якщо репозиторій визначено як Prisma/Drizzle/Atlas, але такого кроку немає, перевірка дає fail у Quality Hub зі зразком workflow.

Деталі: Вбудовані перевірки — база даних і міграції та Усі налаштування — realtime / precommit.

Примітки для Windows

  • act потребує запущеного Docker Desktop до виконання workflows
  • Деякі функції workflow (наприклад, блоки services: для PostgreSQL) не підтримуються act на Windows — кроки, що залежать від Docker services, будуть пропущені або завершаться з помилкою
  • Для повного CI-паритету (включаючи database services) зробіть push на feature-гілку і дозвольте GitHub Actions виконати workflow віддалено

Пов’язані функції