Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/deploy-pages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Deploy GitHub Pages (step-4) # Имя workflow, отображается во вкладке Actions и помогает понять назначение сценария

on: # Условия, при которых GitHub запускает этот workflow
push: # Workflow запускается при каждом push в репозиторий
branches: # Ограничиваем запуск только указанными ветками
- step-4-setup-github-actions # Деплой выполняется только из этой учебной ветки

permissions: # Явно задаём права для GITHUB_TOKEN, с которым работает workflow
contents: read # Разрешаем читать содержимое репозитория (нужно для checkout кода)
pages: write # Разрешаем создавать и обновлять деплой GitHub Pages
id-token: write # Разрешаем получать OIDC-токен для безопасной аутентификации деплоя

jobs: # Описываем набор задач, которые будет выполнять workflow
deploy: # Задача, отвечающая за публикацию сайта
runs-on: ubuntu-latest # Выполняем задачу на виртуальной машине с Ubuntu

steps: # Последовательные шаги, которые выполняются внутри задачи
- name: Checkout # Шаг с понятным именем для логов
uses: actions/checkout@v4 # Загружает код репозитория в рабочее окружение runner'а

- name: Setup Pages # Подготавливает окружение для работы с GitHub Pages
uses: actions/configure-pages@v5 # Настраивает Pages и проверяет доступность деплоя

- name: Upload artifact (src) # Определяем, какие файлы считаются сайтом
uses: actions/upload-pages-artifact@v3 # Упаковывает указанные файлы в артефакт для Pages
with:
path: 'src' # Папка src считается итоговым содержимым сайта

- name: Deploy # Финальный шаг публикации сайта
id: deployment # Идентификатор шага для получения информации о деплое
uses: actions/deploy-pages@v4 # Публикует артефакт и обновляет GitHub Pages
58 changes: 58 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,61 @@

3.5) Если deployment прошел а на странице ghpages (на стенде) новых изменений нет,
то проблема может быть в кеше браузера (тогда помогает hard realod или режим incognito)

### Шаг 4 - Настроить папку src/

#### Ветка "step-4-setup-github-actions"

> Зачем менять на `src/` ? -> Чтобы научиться...
> - папка `src/` это стандарт на frontend проектах (всегда есть)
> - папка `docs/` используется не для хранения кода проекта, а для документации
> - шаг с папкой `docs/` это последний "простой шаг", где можно было сделать все легко через настройки

> Теперь настало время переходить к github actions...
> - т.к. именно этот инструмент сейчас поможет в автоматизации деплоя

4.1) Нужно переименовать папку `docs/` в `src/`
(или вернее сказать "переместить содержимое папки `docs/` в папку `src/`")

4.2) Нужно создать файл `.github/workflows/deploy-pages.yml`

```yml
name: Deploy GitHub Pages (step-4)

on:
push:
branches:
- step-4-setup-github-actions

permissions:
contents: read
pages: write
id-token: write

jobs:
deploy:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Pages
uses: actions/configure-pages@v5

- name: Upload artifact (src)
uses: actions/upload-pages-artifact@v3
with:
path: 'src'

- name: Deploy
id: deployment
uses: actions/deploy-pages@v4
```

4.3) Закоммитить и запушить все изменения в соответствующую ветку

4.4) Настроить работу с github actions (переключиться на них)
- перейти в раздел `Settings > Pages`
- в поле `Source` выбрать `GitHub Actions`
- в этом же разделе (`Code and automation`) перейти в раздел `Actions`
1 change: 1 addition & 0 deletions docs/index.html → src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<header class="page__header header">
<div class="container">
<h1 class="header__name">Иван Иванов Иванович</h1>
<h6>step 4 - setup github pages (v3)</h6>
<p class="header__role">Best Frontend Developer</p>
</div>
</header>
Expand Down
File renamed without changes.
File renamed without changes.