Публикация через CI/CD
Статические сайты обычно собираются с помощью команд, таких как npm run build
или make
. Для автоматизации публикации сайта при изменении кодовой базы можно использовать действие actions/deploy-pages. Оно публикует собранные файлы в указанную ветку указанного репозитория.
Пример публикации в текущий репозиторий
Этот подход удобен для автоматически создаваемой документации из кода.
yaml
# ...
jobs:
build-and-deploy:
steps:
- name: Build
run: make docs # создает ./dist/index.html
- name: Deploy pages
uses: actions/deploy-pages@v1
with:
directory: ./dist
Результат:
- в текущем репозитории создается ветка
pages
; - документация доступна по URL:
https://{user}.altlinux.team/{reponame}
.
Реальный пример - rirusha/libvalagram.
Пример публикации в другой репозиторий
Этот подход подходит для статических сайтов или документации, где требуется предпросмотр изменений в pull request (PR).
yaml
on:
push:
branches:
- main
pull_request_target:
branches:
- main
jobs:
deploy:
steps:
- name: Checkout
uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.sha }}
persist-credentials: false
- name: Build
env:
GITHUB_TOKEN: override
run: npm run build
- name: Deploy to pages
uses: actions/deploy-pages@v1
with:
directory: ./dist
pages-repository: my-org/pages
pages-repository-ssh-key: ${{ secrets.DEPLOY_SSH_KEY }}
Результат:
- при push в main: создается ветка
pages
в репозиторииmy-org/pages
. Сайт доступен по URL:https://my-org.altlinux.team
. - при pull request в main: создается ветка
pr_{number}
в репозиторииmy-org/pages
. Сайт доступен по URL:https://my-org.altlinux.team/pages/@pr_{number}
.
🚧 В разработке
К сожалению, эта страница ещё находится в разработке. Если вы не нашли нужную информацию, вы можете воспользоваться меню навигации на боковой панели, чтобы начать чтение.