


Примечание
См. Также Сначала официальные страницы GitHub.
Это действие GitHub для развертывания ваших статических файлов на страницы GitHub . Это действие развертывания может быть объединено просто и свободно со статическими генераторами сайтов. (Hugo, Mkdocs, Gatsby, Mdbook, Next, Nuxt и т. Д.)
Следующим примером будет развернуться ./public Directory в удаленную филиал gh-pages .
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public Для новичков действий Github: обратите внимание, что GITHUB_TOKEN не является личным токеном доступа. Бегун GitHub Actions автоматически создает секрет GITHUB_TOKEN для аутентификации в вашем рабочем процессе. Таким образом, вы можете начать развертываться немедленно без какой -либо конфигурации.
Три токена поддерживаются.
| Токен | Частный репо | Public Repo | Протокол | Настраивать |
|---|---|---|---|---|
github_token | ✅ | ✅ | Https | Ненужный |
deploy_key | ✅ | ✅ | SSH | Необходимый |
personal_token | ✅ | ✅ | Https | Необходимый |
Примечания: На самом деле, GITHUB_TOKEN работает для развертывания на страницах Github, но у него все еще есть некоторые ограничения. Для первого развертывания нам необходимо выбрать ветвь gh-pages или другую ветвь на вкладке «Настройки репозитория». См. Первое развертывание с GITHUB_TOKEN
Все действия бегуны: Linux (Ubuntu), MacOS и Windows поддерживаются.
| забегает | github_token | deploy_key | personal_token |
|---|---|---|---|
| Ubuntu-22.04 | ✅ | ✅ | ✅ |
| Ubuntu-20.04 | ✅ | ✅ | ✅ |
| Ubuntu-Latest | ✅ | ✅ | ✅ |
| macos-latest | ✅ | ✅ | ✅ |
| Windows-Latest | ✅ | (2) | ✅ |
✅ Github Enterprise Server поддерживается выше 2.22.6 .
Обратите внимание, что GITHUB_TOKEN , созданный бегуном, может по своей сути, может иметь привилегии Push/Pullish на GHE. Возможно, вам потребуется создать/запросить технического пользователя с разрешениями на запись в ваш целевой репозиторий.
github_tokendeploy_keypersonal_tokenpublish_branchpublish_dirdestination_direxclude_assets Фильтраcnameenable_jekyllallow_empty_commitkeep_filesexternal_repositoryforce_orphanGITHUB_TOKEN Добавьте свой файл рабочего процесса .github/workflows/gh-pages.yml и нажмите его к удаленному филиалу по умолчанию.
Вот пример рабочий процесс для Хьюго.
name : GitHub Pages
on :
push :
branches :
- main # Set a branch name to trigger deployment
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
with :
submodules : true # Fetch Hugo themes (true OR recursive)
fetch-depth : 0 # Fetch all history for .GitInfo and .Lastmod
- name : Setup Hugo
uses : peaceiris/actions-hugo@v2
with :
hugo-version : ' 0.110.0 '
- name : Build
run : hugo --minify
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
# If you're changing the branch from main,
# also change the `main` in `refs/heads/main`
# below accordingly.
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public| Обзор журнала действий | Журнал страниц GitHub |
|---|---|
![]() | ![]() |
github_token Эта опция для GITHUB_TOKEN , а не токена личного доступа.
Бегун с GitHub Actions автоматически создает секрет GITHUB_TOKEN для использования в вашем рабочем процессе. Вы можете использовать GITHUB_TOKEN для аутентификации в рабочем процессе.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public Для получения более подробной информации о GITHUB_TOKEN : автоматическая аутентификация токена - Документы Github
deploy_key Прочтите Create SSH Deploy Key, создайте свой ключ Deploy SSH и установите опцию deploy_key как следующее.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
deploy_key : ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir : ./publicpersonal_token Создайте личный токен доступа ( repo ) и добавьте его в секреты как PERSONAL_TOKEN , он работает так же, как и ACTIONS_DEPLOY_KEY .
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
personal_token : ${{ secrets.PERSONAL_TOKEN }}
publish_dir : ./publicpublish_branch Установите имя ветви, чтобы использовать в качестве ветви GitHub Pages. По умолчанию gh-pages .
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_branch : your-branch # default: gh-pagespublish_dir Справочник источника для развертывания на страницах GitHub. По умолчанию public . Только содержимое этого DIR подтолкнуто к ветвью GitHub Pages, gh-pages по умолчанию.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./out # default: publicdestination_dirЭта функция на бета -версии. Любые отзывы приветствуются по выпуску № 324
Подкаталог назначения на издательской филиале. По умолчанию пусто.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
destination_dir : subdirexclude_assets ФильтраЭта функция на бета -версии. Любые отзывы приветствуются по выпуску № 163
Установите файлы или каталоги, чтобы исключить из публикации активов. По умолчанию .github . Значения должны быть разделены с запятой.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
exclude_assets : ' .github,exclude-file1,exclude-file2 ' Установите exclude_assets , чтобы опустошать, чтобы включить каталог .github для развертывания активов.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
deploy_key : ${{ secrets.ACTIONS_DEPLOY_KEY }} # Recommended for this usage
# personal_token: ${{ secrets.PERSONAL_TOKEN }} # An alternative
# github_token: ${{ secrets.GITHUB_TOKEN }} # This does not work for this usage
exclude_assets : ' ' Опция exclude_assets поддерживает шаблоны глобуса.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
exclude_assets : ' .github,exclude-file.txt,exclude-dir/**.txt 'cname Чтобы добавить файл CNAME , мы можем установить опцию cname . В качестве альтернативы поместите свой файл CNAME в свой publish_dir . (например, public/CNAME )
Для получения более подробной информации о файле CNAME прочитайте официальную документацию: Управление пользовательским доменом для вашего сайта GitHub Pages - GitHub Docs
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
cname : github.comenable_jekyll Если вы хотите, чтобы страницы GitHub обрабатывали ваш сайт со статическим генератором сайта Jekyll, установите enable_jekyll в True.
По умолчанию это действие сигнализирует о страницах GitHub, что сайт не должен обрабатываться с помощью Jekyll. Это делается путем добавления пустого файла .nojekyll в ваш издательский филиал. Когда этот файл уже существует, это действие ничего не делает.
Обход Jekyll делает развертывание быстрее и необходимо, если вы развертываете файлы или каталоги, которые начинаются с недостатков, поскольку Jekyll считает их специальными ресурсами и не копирует их на конечный сайт. Вам нужно только установить enable_jekyll на True, когда вы хотите развернуть веб-сайт с питанием Jekyll и позволить страницам GitHub выполнять обработку Jekyll.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
enable_jekyll : true Для получения более подробной информации о .nojekyll : обход Jekyll на страницах GitHub - блог GitHub
allow_empty_commit По умолчанию коммит не будет генерироваться при изменении файла. Если вы хотите разрешить пустой коммит, установите необязательный параметр allow_empty_commit на true .
Например:
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
allow_empty_commit : truekeep_files По умолчанию существующие файлы в отделении публикации (или только в destination_dir , если указано), будут удалены. Если вы хотите, чтобы действие добавило новые файлы, но оставляйте существующие нетронутыми, установите необязательный параметр keep_files на true .
Обратите внимание, что пользователи, которые используют статический генератор сайтов, в большинстве случаев не нуждаются в этой опции. Пожалуйста, пересмотрите структуру проекта и строительные сценарии или используйте встроенную функцию статического генератора сайта, прежде чем вы включите этот флаг.
Например:
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
keep_files : trueС помощью V3 эта опция не поддерживает работу с опцией FIRCE_ORPHAN. Следующий крупный релиз (версия 4) поддержат это. Смотрите проблему № 455
external_repository По умолчанию ваши файлы публикуются в репозитории, который выполняет это действие. Если вы хотите опубликовать в другом репозитории на GitHub, установите переменную среды external_repository на <username>/<external-repository> .
Например:
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
deploy_key : ${{ secrets.ACTIONS_DEPLOY_KEY }}
external_repository : username/external-repository
publish_branch : your-branch # default: gh-pages
publish_dir : ./public Вы можете использовать deploy_key или personal_token . Когда вы используете deploy_key , установите свой закрытый ключ в репозиторий, который включает это действие и установите свой общедоступный ключ на ваш внешний репозиторий.
Обратите внимание, что GITHUB_TOKEN не имеет разрешения на доступ к внешним репозиториям. Пожалуйста, создайте личный токен доступа и установите его на personal_token , как personal_token: ${{ secrets.PERSONAL_TOKEN }} .
В случае использования:
Учетная запись бесплатного плана GitHub не может использовать страницы GitHub в частном репозитории. Чтобы сделать ваше источник контента частным и развернуть его со страницами GitHub, вы можете развернуть свой сайт из частного репозитория в общественный репозиторий, используя эту опцию.
peaceiris/homepage : частный репозиторий, управляющий этим действием с external_repository: peaceiris/peaceiris.github.iopeaceiris/peaceiris.github.io : общественное хранилище с использованием страниц GitHubforce_orphan Мы можем установить опцию force_orphan: true . Это позволяет вам создать ваш публикационный филиал только с последним коммитом.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
force_orphan : true Установите пользовательский git config user.name и git config user.email . Коммит всегда создается с одним и тем же пользователем.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
user_name : ' github-actions[bot] '
user_email : ' github-actions[bot]@users.noreply.github.com ' 
Установите пользовательское сообщение о коммите. Когда мы создаем коммит с docs: Update some post , будет сгенерирован коммит для развертывания с помощью сообщений docs: Update some post ${GITHUB_SHA} .
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
commit_message : ${{ github.event.head_commit.message }} 
Чтобы установить полное пользовательское сообщение для коммита без запускаемого хэша коммита, используйте опцию full_commit_message вместо параметра commit_message .
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
full_commit_message : ${{ github.event.head_commit.message }}Вот пример рабочий процесс.
name : GitHub Pages
on :
push :
branches :
- main
tags :
- ' v*.*.* '
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- name : Some build
- name : Prepare tag
id : prepare_tag
if : startsWith(github.ref, 'refs/tags/')
run : |
echo "DEPLOY_TAG_NAME=deploy-${TAG_NAME}" >> "${GITHUB_OUTPUT}"
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
tag_name : ${{ steps.prepare_tag.outputs.DEPLOY_TAG_NAME }}
tag_message : ' Deployment ${{ github.ref_name }} 'Команды на локальной машине.
$ # On a main branch
$ git tag -a " v1.2.3 " -m " Release v1.2.3 "
$ git push origin " v1.2.3 "
$ # After deployment
$ git fetch origin
$ git tag
deploy-v1.2.3 # Tag on the gh-pages branch
v1.2.3 # Tag on the main branchСоздайте ключ развертывания со следующей командой.
ssh-keygen -t rsa -b 4096 -C " $( git config user.email ) " -f gh-pages -N " "Вы получите 2 файла:
gh-pages.pub -это открытый ключgh-pages -личный ключДалее перейдите в настройки репозитория
ACTIONS_DEPLOY_KEY| Добавьте свой открытый ключ | Успех |
|---|---|
![]() | ![]() |
| Добавьте свой личный ключ | Успех |
|---|---|
![]() | ![]() |
GITHUB_TOKEN GITHUB_TOKEN имеет ограничения для первого развертывания, поэтому мы должны выбрать ветвь страниц GitHub на вкладке «Настройки репозитория». После этого сделайте второе развертывание, как следующие картинки.
| Первое развертывание не удалось | Перейти на вкладку «Настройки» |
|---|---|
![]() | ![]() |
| Выберите филиал | Развертывание снова и добиться успеха |
|---|---|
![]() | ![]() |
Если действие не может выдвинуть коммит или тег со следующей ошибкой:
/usr/bin/git push origin gh-pages
remote: Write access to repository not granted.
fatal: unable to access 'https://github.com/username/repository.git/': The requested URL returned error: 403
Error: Action failed with "The process '/usr/bin/git' failed with exit code 128" Пожалуйста, добавьте разрешение на записи в permissions.contents в рабочем процессе/работе.
permissions :
contents : write В качестве альтернативы, вы можете настроить разрешения по умолчанию GITHUB_TOKEN , выбрав разрешения на чтение и запись.
Мы рекомендуем вам использовать последний и конкретный выпуск этого действия для стабильного CI/CD. Полезно посмотреть этот репозиторий (только выпуск), чтобы проверить последний выпуск этого действия.
Для непрерывного обновления мы можем использовать Native Github Native Devideabot. Вот пример конфигурации бота. Файл конфигурации расположен в .github/dependabot.yml .
version : 2
updates :
- package-ecosystem : " github-actions "
directory : " / "
schedule :
interval : " daily "
labels :
- " CI/CD "
commit-message :
prefix : ciСм. Официальную документацию для получения более подробной информации о зависимости:
Для регулярного развертывания мы можем установить триггер рабочего процесса on.schedule . Смотрите запланированные события | События, которые запускают рабочие процессы - github Docs
Для развертывания вручную мы можем установить триггер рабочего процесса on.workflow_dispatch . См. Ручные события workflow_dispatch | События, которые запускают рабочие процессы - github Docs
name : GitHub Pages
on :
push :
branches :
- main
schedule :
- cron : " 22 22 * * * "
workflow_dispatch :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
...ср. Поддержка: выполнение из Hashref отключено/сломано против Github Actions Besect Practice? · Выпуск № 712 · Mizeiris/Action-gh-pages
Наш проект наращивает и обеспечивает активы сборки только при создании выпуска. Это не позволяет пользователю выполнять это действие с помощью конкретной ветви (например, Main). Например, если мы поддерживаем активы сборки в основной филиале, а пользователи используют это действие следующим образом, основной релиз, включая нарушение изменений, молча разломает рабочий процесс CI.
- uses : peaceiris/actions-gh-pages@main # Bad example!
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./publicВ этом проекте основной тег (например, V3) гарантированно не содержит нарушающих изменений. Но мы рекомендуем использовать тег или хэш коммита для стабильности ваших рабочих процессов.
- uses : peaceiris/[email protected] # tag: Better
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public - uses : peaceiris/actions-gh-pages@373f7f263a76c20808c831209c920827a82a2847 # commit hash of v3.9.3: Best!
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./publicДля проверки актива выпуска мы можем использовать следующие команды.
git clone https://github.com/peaceiris/actions-gh-pages.git
cd ./actions-gh-pages
git checkout v3.9.3
nvm install
nvm use
npm i -g npm
npm ci
npm run build
git diff ./lib/index.js # We will get zero exit code Hexo, Vuepress, React-Static, Gridsome, создание-реактирование и так далее. Пожалуйста, проверьте, где находится ваш выходной каталог, прежде чем нажать ваш рабочий процесс. Например create-react-app требует publish_dir , чтобы быть установленным ./build
Предпосылка: зависимости управляются package.json и package-lock.json
name : GitHub Pages
on :
push :
branches :
- main
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- name : Setup Node
uses : actions/setup-node@v3
with :
node-version : ' 14 '
- name : Cache dependencies
uses : actions/cache@v3
with :
path : ~/.npm
key : ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys : |
${{ runner.os }}-node-
- run : npm ci
- run : npm run build
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./publicПример для проекта Gatsby (Gatsby.js) с Gatsby-Starter-Blog
name : GitHub Pages
on :
push :
branches :
- main
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- name : Setup Node
uses : actions/setup-node@v3
with :
node-version : ' 14 '
- name : Cache dependencies
uses : actions/cache@v3
with :
path : ~/.npm
key : ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys : |
${{ runner.os }}-node-
- run : npm ci
- run : npm run format
- run : npm run test
- run : npm run build
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./publicПример для проекта Next.js (React.js) с Create-next-App
name : GitHub Pages
on :
push :
branches :
- main
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- name : Setup Node
uses : actions/setup-node@v3
with :
node-version : ' 14 '
- name : Get yarn cache
id : yarn-cache
run : echo "YARN_CACHE_DIR=$(yarn cache dir)" >> "${GITHUB_OUTPUT}"
- name : Cache dependencies
uses : actions/cache@v3
with :
path : ${{ steps.yarn-cache.outputs.YARN_CACHE_DIR }}
key : ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys : |
${{ runner.os }}-yarn-
- run : yarn install --frozen-lockfile
- run : yarn build
- run : yarn export
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./outПример для проекта nuxt.js (vue.js) с Create-nuxt-app
name : GitHub Pages
on :
push :
branches :
- main
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- name : Setup Node
uses : actions/setup-node@v3
with :
node-version : ' 14 '
- name : Cache dependencies
uses : actions/cache@v3
with :
path : ~/.npm
key : ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys : |
${{ runner.os }}-node-
- run : npm ci
- run : npm test
- run : npm run generate
- name : deploy
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./distПример рабочий процесс для Docusaurus.
npx @docusaurus/init@next init website classic полезно для создания нового проекта Docusaurus.
# .github/workflows/deploy.yml
name : GitHub Pages
on :
push :
branches :
- main
paths :
- ' .github/workflows/deploy.yml '
- ' website/** '
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
defaults :
run :
working-directory : website
steps :
- uses : actions/checkout@v3
- name : Setup Node
uses : actions/setup-node@v3
with :
node-version : ' 14 '
- name : Get yarn cache
id : yarn-cache
run : echo "YARN_CACHE_DIR=$(yarn cache dir)" >> "${GITHUB_OUTPUT}"
- name : Cache dependencies
uses : actions/cache@v3
with :
path : ${{ steps.yarn-cache.outputs.YARN_CACHE_DIR }}
key : ${{ runner.os }}-website-${{ hashFiles('**/yarn.lock') }}
restore-keys : |
${{ runner.os }}-website-
- run : yarn install --frozen-lockfile
- run : yarn build
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./website/buildПеликан, Mkdocs, Sphinx и так далее.
Предпосылка: зависимости управляются requirements.txt
name : GitHub Pages
on :
push :
branches :
- main
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- name : Setup Python
uses : actions/setup-python@v3
with :
python-version : ' 3.8 '
- name : Upgrade pip
run : |
# install pip=>20.1 to use "pip cache dir"
python3 -m pip install --upgrade pip
- name : Get pip cache dir
id : pip-cache
run : echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name : Cache dependencies
uses : actions/cache@v3
with :
path : ${{ steps.pip-cache.outputs.dir }}
key : ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys : |
${{ runner.os }}-pip-
- name : Install dependencies
run : python3 -m pip install -r ./requirements.txt
- run : mkdocs build
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./siteПример действий GitHub для развертывания сайта Rust-Lang/MDBook на страницы GitHub.
name : GitHub Pages
on :
push :
branches :
- main
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- name : Setup mdBook
uses : peaceiris/actions-mdbook@v1
with :
mdbook-version : ' 0.4.8 '
# mdbook-version: 'latest'
- run : mdbook build
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./book Подсказка: вы можете опубликовать свои Rustdocs. И используйте относительные ссылки на него из MD Docs и проверьте их mdbook . Затем, согласно DOC, вы можете поместить ./target/doc/ в свой ./book/src dir, прежде чем вы mdbook build , а затем в конечном итоге окажется в ./book/html/ и на ваших страницах Github.
Пример рабочий процесс для Flutter Web Project.
name : GitHub Pages
on :
push :
branches :
- main
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- name : Setup Flutter
run : |
git clone https://github.com/flutter/flutter.git --depth 1 -b beta _flutter
echo "${GITHUB_WORKSPACE}/_flutter/bin" >> ${GITHUB_PATH}
- name : Install
run : |
flutter config --enable-web
flutter pub get
- name : Build
run : flutter build web
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./build/webПример рабочий процесс для ELM.
name : GitHub Pages
on :
push :
branches :
- main
pull_request :
jobs :
deploy :
runs-on : ubuntu-22.04
permissions :
contents : write
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- name : Setup Node
uses : actions/setup-node@v3
with :
node-version : ' 14 '
- name : Setup Elm
run : npm install elm --global
- name : Make
run : elm make --optimize src/Main.elm
- name : Move files
run : |
mkdir ./public
mv ./index.html ./public/
# If you have non-minimal setup with some assets and separate html/js files,
# provide --output=<output-file> option for `elm make` and remove this step
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./publicПример рабочий процесс для Johnsundell/Publish.
name : GitHub Pages
on :
push :
branches :
- main
pull_request :
jobs :
deploy :
runs-on : macos-latest
concurrency :
group : ${{ github.workflow }}-${{ github.ref }}
steps :
- uses : actions/checkout@v3
- uses : actions/cache@v3
with :
path : |
~/Publish_build
.build
key : ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
restore-keys : |
${{ runner.os }}-spm-
- name : Setup JohnSundell/Publish
run : |
cd ${HOME}
export PUBLISH_VERSION="0.7.0"
git clone https://github.com/JohnSundell/Publish.git
cd ./Publish && git checkout ${PUBLISH_VERSION}
mv ~/Publish_build .build || true
swift build -c release
cp -r .build ~/Publish_build || true
echo "${HOME}/Publish/.build/release" >> ${GITHUB_PATH}
- run : publish-cli generate
- name : Deploy to GitHub Pages
uses : peaceiris/actions-gh-pages@v4
if : github.ref == 'refs/heads/main'
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./Output