Чтобы наша совместная работа была эффективной, следует придерживаться правил:
-
Весь исходный код мы храним на гитхабе. Результаты показываем тоже на гитхабе
-
Кодировка для всех файлов: UTF-8
-
Чтобы показать ошибку используйте сниппеты (в слаке, на пейстбине или файлом). Без скриншотов кода
-
Логи передаем обычными файлами
-
Для архивов используем форматы tar.gz или zip. Не используем форматы типа rar, 7z и прочие на них похожие
-
При оформлении кода, используем пробелы в качестве отступов (не более 4-х). Исключение: табы в Makefile
-
Документацию оформляем по-умолчанию в формате Markdown
-
Длина строк кода от 80 до 120 символов
-
Linux дистрибутив (для сервера в том числе): Ubuntu не ниже 16.04. Windows: не ниже десятки. MacOS: не ниже Mojave 10.14
-
Не размещайте пароли, ключи, токены и информацию о девичьей фамилии матери в публичном репозитории без шифрования
Инструменты: git, ssh, docker, wget, make, cron
Аккаунты: GitHub. Дополнительно: любой хостинг VPS
Саймон Тэтхем когда-то давно опубликовал статью «Как эффективно сообщать об ошибках». Статья решили сделать частью руководства для разработчиков. Да вот беда: разработчики трудятся над проектом, который нельзя никому показывать. К тому же, их закрыли в одном помещении без возможности ходить в интернет — у них есть только локалка, зато гигабитная и анлим. Документацию они получают в виде статических зеркал, которые запускаются на сервере в их комнате.
Та самая статья: https://www.chiark.greenend.org.uk/~sgtatham/bugs-ru.html
Ваша роль: автоматизатор.
С помощью wget необходимо делать зеркало всех языковых версий статьи, упаковывать в docker-контейнер, который будет деплоиться на местный сервер, где у разработчиков хранится документация.
Представим, что статьи обновляются раз в неделю. Нужно добавить настройку crontab, которая будет запускать обновление зеркала раз в неделю по субботам в три утра сорок пять минут.
Все операции должны быть представлены в виде Makefile, чтобы можно было запускать отдельные задачи выполнив, например, make sync — для запуска обновления зеркала, make deploy — для развертывания контейнера на целевом сервере.
Т. к. скоро вы планируете уйти в отпуск на 2 месяца, весь процесс нужно задокументировать, чтобы ваш сменщик мог без проблем поддерживать код автоматизации и дорабатывать его.
Руководствуясь принципом Everything as Code, решите поставленную задачу.
Важно: данные статьи не должны быть в репозитории.
Дополнительные задания со звездочкой
- Напишите операции для сихнронизации отдельных языковых версий статьи.
- Отделите данные от сервиса, чтобы хостить получившееся зеркало
- Придумайте альтернативный вариант реализации задачи, который исключает использование Docker