|
1 | | -# Corporate Template |
| 1 | +# info-tech-io.github.io |
2 | 2 |
|
3 | | -Шаблон для создания корпоративных сайтов организаций. |
| 3 | +Корпоративный портал организации InfoTech.io. |
4 | 4 |
|
5 | | -## Особенности |
| 5 | +**Живой адрес:** https://info-tech-io.github.io |
6 | 6 |
|
7 | | -- Использует тему Compose |
8 | | -- Поддержка блога |
9 | | -- Каталог продуктов |
10 | | -- Адаптивный дизайн |
11 | | -- SEO оптимизация |
| 7 | +--- |
12 | 8 |
|
13 | | -## Использование |
| 9 | +## Структура сайта |
14 | 10 |
|
15 | | -```bash |
16 | | -hugo-templates build --template corporate --config module.json |
17 | 11 | ``` |
| 12 | +https://info-tech-io.github.io/ |
| 13 | +├── / ← корпоративный сайт (из info-tech/docs/) |
| 14 | +└── /docs/ |
| 15 | + ├── /docs/quiz/ ← документация Quiz Engine |
| 16 | + ├── /docs/hugo-templates/ ← документация Hugo Templates Framework |
| 17 | + ├── /docs/web-terminal/ ← документация Web Terminal |
| 18 | + └── /docs/info-tech-cli/ ← документация InfoTech CLI |
| 19 | +``` |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Как собирается сайт |
| 24 | + |
| 25 | +Сборка выполняется в GitHub Actions через единый workflow: |
| 26 | +`.github/workflows/deploy-github-pages.yml` |
| 27 | + |
| 28 | +### Инструменты |
| 29 | + |
| 30 | +| Инструмент | Версия | Роль | |
| 31 | +|------------|--------|------| |
| 32 | +| [Hugo](https://gohugo.io) | 0.148.0 extended | Генератор статических сайтов | |
| 33 | +| [hugo-templates](https://github.com/info-tech-io/hugo-templates) | v0.3.0 | Build system: `build.sh` + `federated-build.sh` | |
| 34 | +| [Compose theme](https://github.com/onweru/compose) | submodule в hugo-templates | Тема оформления | |
| 35 | + |
| 36 | +### Источники контента |
| 37 | + |
| 38 | +| Репозиторий | Что берётся | Куда попадает | |
| 39 | +|-------------|-------------|---------------| |
| 40 | +| [info-tech](https://github.com/info-tech-io/info-tech) | `docs/` | `/` (корпоративный сайт) | |
| 41 | +| [quiz](https://github.com/info-tech-io/quiz) | `docs/` | `/docs/quiz/` | |
| 42 | +| [hugo-templates](https://github.com/info-tech-io/hugo-templates) | `docs/` | `/docs/hugo-templates/` | |
| 43 | +| [web-terminal](https://github.com/info-tech-io/web-terminal) | `docs/` | `/docs/web-terminal/` | |
| 44 | +| [info-tech-cli](https://github.com/info-tech-io/info-tech-cli) | `docs/` | `/docs/info-tech-cli/` | |
| 45 | + |
| 46 | +### Конфигурация федерации |
| 47 | + |
| 48 | +- `configs/corporate-modules.json` — описывает сборку корпоративного сайта |
| 49 | +- `configs/documentation-modules.json` — описывает сборку документации всех 4 продуктов |
| 50 | + |
| 51 | +### Процесс сборки (каждый run) |
| 52 | + |
| 53 | +``` |
| 54 | +1. Checkout hub-repo (этот репозиторий, для configs/) |
| 55 | +2. Setup Hugo 0.148.0 extended |
| 56 | +3. Clone hugo-templates (build system + Compose theme submodule) |
| 57 | +4. Clone info-tech (корпоративный контент) |
| 58 | +5. build.sh → corporate-build/ # корпоративный сайт |
| 59 | +6. federated-build.sh → docs-build/ # документация 4 продуктов |
| 60 | +7. merge: corporate-build/ + docs-build/ → final-site/ |
| 61 | +8. upload-pages-artifact + deploy-pages # атомарный деплой на GitHub Pages |
| 62 | +``` |
| 63 | + |
| 64 | +--- |
| 65 | + |
| 66 | +## Как запускается деплой |
| 67 | + |
| 68 | +### Автоматически — при обновлении контента в продуктовых репозиториях |
| 69 | + |
| 70 | +Каждый продуктовый репозиторий содержит workflow `notify-hub.yml`, который при push в `main` с изменениями в `docs/**` отправляет `repository_dispatch` в этот репозиторий: |
| 71 | + |
| 72 | +| Событие | Откуда | |
| 73 | +|---------|--------| |
| 74 | +| `quiz-docs-updated` | quiz при изменении `docs/**` | |
| 75 | +| `hugo-templates-docs-updated` | hugo-templates при изменении `docs/**` | |
| 76 | +| `web-terminal-docs-updated` | web-terminal при изменении `docs/**` | |
| 77 | +| `cli-docs-updated` | info-tech-cli при изменении `docs/**` | |
| 78 | +| `corporate-site-updated` | info-tech при изменении корпоративного контента | |
| 79 | + |
| 80 | +### Вручную |
| 81 | + |
| 82 | +GitHub Actions → Deploy GitHub Pages Federation → Run workflow |
| 83 | + |
| 84 | +--- |
| 85 | + |
| 86 | +## Concurrency |
| 87 | + |
| 88 | +Все запуски используют единую concurrency group `github-pages-federation`. |
| 89 | +Параллельные деплои невозможны — исключает race condition при одновременных обновлениях нескольких продуктов. |
| 90 | + |
| 91 | +--- |
| 92 | + |
| 93 | +## Секреты |
| 94 | + |
| 95 | +| Secret | Назначение | |
| 96 | +|--------|------------| |
| 97 | +| `PAT_TOKEN` | Клонирование репозиториев организации при сборке | |
18 | 98 |
|
19 | | -## Версия |
| 99 | +`PAT_TOKEN` также должен быть установлен во всех продуктовых репозиториях — он используется в `notify-hub.yml` для отправки `repository_dispatch`. |
20 | 100 |
|
21 | | -1.0.0 - Упрощенная версия для первоначального развертывания |
22 | | -**Примечание:** Данная версия использует базовую тему Compose. В будущих версиях будет добавлена специализированная корпоративная тема с расширенным функционалом. |
| 101 | +--- |
23 | 102 |
|
24 | | -## Структура |
| 103 | +## Производительность |
25 | 104 |
|
26 | | -- `template.json` - конфигурация шаблона |
27 | | -- `config/hugo.toml` - базовая конфигурация Hugo |
28 | | -- `content/_index.md` - пример главной страницы |
| 105 | +- Время сборки: ~44–60 секунд |
| 106 | +- Загрузка страниц: ~240 мс |
0 commit comments