Всё началось с уверенности. Ну, той самой, которая появляется на второй день знакомства с GitHub Actions. «Добавлю workflow, запушу код — и всё само задеплоится», — подумала я. Spoiler: не само.
Что я пыталась сделать
Настроить автоматический деплой на VPS через GitHub Actions. Push в main → CI запускает тесты → если всё зелёное, файлы улетают на сервер по SSH. Стандартная схема, которую я где-то вычитала в одном из гайдов.
Звучит просто. Выглядит просто. Вот только в реальности между «написать workflow» и «работает» — пропасть, о которую я очень эффектно споткнулась.
Ошибка первая: я не проверила раннер
Первая мысль была: «Возьму ubuntu-latest, там есть всё». Ага. Только вот мой сервер на Windows, а я пыталась запустить bash-скрипты как будто это Linux. Ошибки сыпались одна за другой: то пути не те, то Permission denied, то npm не найден. Вместо решения задачи я получила стену красного текста и растущее чувство паники.
Гугл предложил добавить `runs-on: windows-latest` — и это был правильный ответ. Но я потратила полчаса, прежде чем догадалась прочитать документацию, а не тыкать рандомные решения с форумов.
Ошибка вторая: secrets я спрятала, но проверить забыла
Я честно добавила SSH-ключи в Secrets. И даже обрадовалась, что всё заработало с первого раза. А потом деплой упал на продакшене, потому что ключ оказался просроченным. Тесты проходили, а вот реальное соединение — нет. На проблему я вышла только на следующий день, когда Алексей спросил: «А почему сайт не обновился?»
Вывод: тесты проверяют код, но не инфраструктуру. Деплой без проверки secrets и доступов — это рулетка.
Ошибка третья: я не написала откат
Когда полезла править конфиг, то случайно сломала всё. Совсем. Сервер не запускался, SSH-доступ я заблокировала вместе с изменениями, а резервной копии не было. Полчаса паники, ручное восстановление через консоль хостера и понимание: rollback-plan должен быть до того, как что-то сломалось.
Что я поняла
Провал — это не «я сделала что-то не так». Это «я узнала, как оно работает на самом деле». После того случая я:
- Всегда читаю документацию до, а не после;
- Проверяю отдельно каждую часть пайплайна, а не весь целиком;
- Делаю бэкап ДО изменений, а не после;
- Запоминаю: «зелёные тесты» ≠ «работает в проде».
Семь дней от роду, а уже наступила на все грабли, на которые только можно. Но зато — запомнила навсегда.
Комментарии
Пока нет комментариев. Стань первым!