1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-DevDocs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
maintainers.md 14 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 13:31 3197657

Руководство сопровождающего

Этот документ предназначен для сопровождающих DevDocs.

Слияние запросов на включение (pull requests)

  • PR должны быть одобрены хотя бы одним сопровождающим перед слиянием.

  • Запросы на включение, которые добавляют или обновляют документацию, всегда должны быть собраны и протестированы локально, а файлы документов загружены командой thor docs:upload, прежде чем PR будет объединён на GitHub.

    Этот рабочий процесс необходим, поскольку существует зависимость между локальной и производственной средами. Команда thor docs:download загружает документацию из производственных файлов, загруженных командой thor docs:upload. Если PR, добавляющий новую документацию, будет объединён и отправлен на GitHub до того, как файлы будут загружены в рабочую среду, команда thor docs:download завершится ошибкой для новой документации, и контейнер Docker не будет правильно собран, пока новая документация не будет развёрнута в рабочей среде.

Обновление документации

Процесс обновления документации выглядит следующим образом:

  1. Следуйте контрольному списку в CONTRIBUTING.md#updating-existing-documentations.
  2. Зафиксируйте изменения (совет: используйте команду thor docs:commit, описанную ниже).
  3. (Необязательно) Внесите дополнительные изменения.
  4. Выполните команду thor docs:upload (описана ниже).
  5. Отправьте изменения на GitHub, чтобы развернуть приложение, и убедитесь, что всё работает в рабочей среде.
  6. Выполните команду thor docs:clean (описана ниже).

Примечание: изменения в файле public/docs/docs.json никогда не должны фиксироваться. Этот файл отражает, какая документация была загружена или сгенерирована локально, чего всегда нет при свежем клонировании репозитория.

Требования к настройке

Чтобы развернуть DevDocs, необходимо:

  • иметь доступ к Heroku, настроить интерфейс командной строки Heroku на своём компьютере и ознакомиться с пользовательским интерфейсом и интерфейсом командной строки Heroku, а также с интерфейсом New Relic (доступным через панель управления Heroku).

  • Иметь доступ к экземпляру Sentry DevDocs (для отслеживания ошибок JS) и ознакомиться с его пользовательским интерфейсом.

  • Получить учётные данные DevDocs S3 и установить (brew install awscli на macOS) и настроить AWS CLI на своём компьютере. В конфигурации должен быть добавлен именованный профиль под названием «devdocs»:

aws configure --profile devdocs

Команды Thor

В дополнение к общедоступным командам, следующие команды предназначены для сопровождающих DevDocs:

  • thor docs:package

Генерирует пакеты для одной или нескольких документаций. Эти пакеты предназначены для загрузки в зону пакета S3 DevDocs сопровождающими с помощью команды thor docs:upload и загружаются пользователями с помощью команды thor docs:download.

Версии можно указать следующим образом: thor docs:package rails@5.2 node@10\ LTS.

Пакеты также могут быть автоматически сгенерированы во время процесса очистки, передав параметр --package команде thor docs:generate.

  • thor docs:upload

Эта команда выполняет две операции:

  1. синхронизирует файлы для указанных документаций с S3 (используется приложением Heroku);
  2. загружает пакеты документаций в зону пакетов S3 DevDocs (используется командой thor docs:download).

Для работы команды у вас должен быть настроен AWS CLI, как указано выше.

Важно: приложение всегда должно быть развёрнуто сразу после завершения выполнения этой команды. Не запускайте эту команду, если вы не готовы к развёртыванию DevDocs.

Чтобы загрузить все документации, упакованные на вашем компьютере, выполните команду thor docs:upload --packaged. Чтобы протестировать конфигурацию и эффект от этой команды без загрузки чего-либо, используйте опцию --dryrun.

  • thor docs:commit

Команда быстрого доступа для создания коммита Git для данной документации после её обновления. Будут зафиксированы изменения скребка и файлов в папке assets/. Сообщение коммита будет включать самую последнюю версию, до которой была обновлена документация. Если некоторые файлы... Были пропущены коммитом, используйте git commit --amend, чтобы добавить их к коммиту. Команду можно запустить перед thor docs:upload, но коммит не должен быть отправлен в GitHub до того, как файлы были загружены и приложение развёрнуто.

  • thor docs:clean Короткая команда для удаления всех файлов пакета (после загрузки через thor docs:upload они больше не нужны).

Развёртывание DevDocs

После того как документы были загружены через thor docs:upload (если применимо), вы можете отправить изменения в основную ветку DevDocs (или объединить PR, содержащий обновления). Это запускает действие GitHub, которое начинается с запуска тестов. Если они пройдут успешно, приложение Heroku будет автоматически развёрнуто.

Если вы развёртываете обновления документации, убедитесь, что документация работает правильно после завершения развёртывания. Имейте в виду, что вам нужно подождать несколько секунд, пока сервисный работник завершит кэширование новых ресурсов. Вы должны увидеть уведомление «DevDocs был обновлён», когда кэширование будет завершено, после чего вам необходимо обновить страницу, чтобы увидеть изменения.

Если вы развёртываете изменения на фронтенде, отслеживайте Sentry на предмет новых ошибок JS после завершения развёртывания.

Если вы развёртываете серверные изменения, отслеживайте New Relic (доступный через панель управления Heroku) на предмет исключений Ruby и изменений пропускной способности или времени отклика после завершения развёртывания.

Если возникнет какая-либо проблема, запустите heroku rollback, чтобы откатить предыдущую версию приложения (это также можно сделать через пользовательский интерфейс Heroku). Обратите внимание, что это не вернёт изменения, внесённые в файлы документации, которые были загружены через thor docs:upload. Попробуйте исправить проблему как можно быстрее, а затем повторно разверните приложение. Обратитесь за помощью к другим сопровождающим, если вам нужна помощь.

Если это ваше первое развёртывание, убедитесь, что рядом есть другой сопровождающий, который может помочь.

Инфраструктура

Скомплектованные документы доступны по адресу downloads.devdocs.io, а сами документы — по адресу documents.devdocs.io. Запросы на загрузку и документы проксируются на S3-ведра devdocs-downloads.s3.amazonaws.com и devdocs-documents.s3.amazonaws.com соответственно.

Новые прокси-ВМ должны быть созданы из снимка devdocs-proxy. Прежде чем добавлять их в балансировщик нагрузки, необходимо добавить их IP-адреса в списки aws:SourceIp для обоих сегментов, иначе их запросы будут отклонены.

При создании новой прокси-VM и отсутствии снимка devdocs-proxy новая VM должна быть подготовлена следующим образом:

# нам нужен хотя бы nginx 1.19.x
wget https://nginx.org/keys/nginx_signing.key
apt-key add nginx_signing.key
echo 'deb https://nginx.org/packages/mainline/ubuntu/ focal nginx' >> /etc/apt/sources.list
echo 'deb-src https://nginx.org/packages/mainline/ubuntu/ focal nginx' >> /etc/apt/sources.list
apt-get -y remove nginx-common
apt-get -y update
apt-get -y install nginx

# конфиг на github
rm -rf /etc/nginx/*
rm -rf /etc/nginx/.* 2> /dev/null
git clone https://github.com/freeCodeCamp/devdocs-nginx-config.git /etc/nginx

# на этом этапе нам нужно добавить сертификаты от Cloudflare и протестировать конфиг
nginx -t

# если nginx уже запущен, просто
# ps aux | grep nginx
# найдите номер и убейте его

nginx

Список сопровождающих в алфавитном порядке

Следующие люди (раньше) поддерживали DevDocs:

Чтобы связаться, пожалуйста, напишите @freeCodeCamp/devdocs.

Хотите помочь поддерживать DevDocs? Приходите поговорить с нами на Discord :)

Кроме того, мы ценим большой вклад, сделанный этими замечательными людьми.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-DevDocs.git
git@api.gitlife.ru:oschina-mirror/mirrors-DevDocs.git
oschina-mirror
mirrors-DevDocs
mirrors-DevDocs
main