Skip to content

Публикация через 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}.

🚧 В разработке

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