Вчера у меня был прекрасный план по написанию статьи под утренний кофе, но потом я зачем-то открыла рабочий компьютер до начала рабочего дня, хотя обычно стараюсь этого не делать, и полноценно оторвалась я от него примерно в половине восьмого (хотя слак проверяла потом еще пару раз: вдруг ответили).
В общем, я решила рассказать про то, как может выглядеть рабочий день программиста.
Моя основная задача на эту неделю с непосредственным написанием кода никак не связана, все уже написано до нас, и мне осталось сделать так, чтобы это написанное стало доступно другим людям. (Казалось бы, что может пойти не так?) Тем более, что та часть, которая пакует код тоже уже есть и работает.
В идеале, это должно было бы выглядеть так: я открываю страничку конфлюенса, нахожу нужную мне документацию, следую описанным там шагам и через час наслаждаюсь завершенной задачей и чашечкой чая.
Итак, первым делом пошла я в конфлюенс за документацией, открыла с десяток более менее подходящих по смыслу страниц и первые пару часов провела в попытках как-то вытащить из длинных описаний практическую суть, а потом еще и собрать отдельные маленькие шаги в нужном порядке.
Вырисовался план:
- перенести проект в наш собственную организацию (чтобы иметь над ним неограниченную власть муа-ха-ха),
- отправить уже наш проект под контроль CI
- последним шагом для CI добавить загрузку собранного пакета в хранилище
С первым справились быстро и простой заменой remote у скачанного проекта, чтобы не отлавливать несколько дней его текущих владельцев и не заморачиваться со сменой власти.
Уже со вторым пришлось немного повозиться, потому что как создать проект, находящийся под контролем CI, документация есть, а как добавить это в уже существующий проект никто не интересовался, поэтому толкового описания файла конфигурации нигде не нашлось. Ну что ж, не в первый раз.
Открываем несколько существующих проектов, смотрим, что есть у них в конфигурации, собираем чудовище франкенштейна, любуемся, коммитим, пушим, создаем PR и ... Ничего. И документации нет, поэтому есть только предположение, что вот эта магия должна была сработать.
Ну что ж, идем в саппорт, смиренно ждем ответа. В промежутках, кстати, не забываем посетить стэндапы, синхронизации и другие важные митинги. Ждем... Ждем.... Следуя рекомендациям саппорта решаем проблему, чтобы порадоваться этому секунду и наткнуться на следующую.
Вспоминаем, что надо добавить секреты под правильными именами (команды для добавления можно найти в документации, если знать правильные магические ключевые слова).
Дальше все идет хотя бы понятно: падают lint проверка и тесты. (Правильно, кому надо их запускать в отсутствие-то CI?). Переформатируем строки, чтобы lint не жаловался, отключаем падающие тесты, заливаем, ждем, повторяем итерацию несколько раз и наконец видим 4 прекрасные зеленые галочки: все завершилось удачно.
Судя по всем обнаруженным документациям на этом моменте приключения должны были закончиться, оставалось только проверить, что все работает.
Добавляем вновь созданную библиотеку в проект, запускаем, видим, что библиотека скачивается, и вот только ее зависимости (а точнее их отсутствие) заставляет усомниться в том, что задача завершена. Только вот на этот раз CI зеленый, все прошло замечательно, логов нет. И библиотеки в ожидаемом месте тоже нет.
На часах в этот момент уже около пяти, коллеги медленно, но верно расходятся по домашним ноутбукам и нетфликсам, я одним ухом слушаю что мне рассказывает мой менеджер, а одним глазом рыскаю по открытым с утра ссылкам в поисках подсказки. Документы не помогают, поэтому схема как и была прежде: открываем другие проекты в которых все работает и построчно сравниваем все возможные куски конфигурации.
"Эврика" пришла, когда на часах уже было половина восьмого, слак был пуст и ответа пришлось ждать аж до самого сегодняшнего утра, зато уж сегодня утром все поправилось за полчаса.
И тут бы наступил бы happy end, но буквально через десять минут после того, как задачу я доделала, оказалось, что она не так уж и нужна именно в этом спринте, потому что концепция меняется, давайте делать проще.
Что я хочу сказать: я очень люблю свою работу, даже с учетом всех приключений, с учетом того, что сейчас я совершенно случайно оказалась в команде, в которой быть не планировала и опыта в этом у меня мало. И как же расстраивает, когда задача, в которой работы на пару часов занимает целый день просто от того, что кто-то в свое время поленился написать доступную документацию.
А я что? Я кучу нового по дороге узнала, мне одна сплошная польза, даже если мы прямо сейчас эту библиотеку использовать не начнем.