


Observação
Veja também a ação oficial do Github Páginas do Github primeiro.
Esta é uma ação do GitHub para implantar seus arquivos estáticos nas páginas do GitHub . Essa ação de implantação pode ser combinada de maneira simples e livre com geradores estáticos do local. (Hugo, Mkdocs, Gatsby, Mdbook, Next, Nuxt, e assim por diante.)
A próxima etapa de exemplo será implantada ./public Directory para a filial remota gh-pages .
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public Para iniciantes de ações do GitHub: Observe que o GITHUB_TOKEN não é um token de acesso pessoal. Um corredor de ações do GitHub cria automaticamente um segredo GITHUB_TOKEN para autenticar no seu fluxo de trabalho. Portanto, você pode começar a implantar imediatamente sem nenhuma configuração.
Três tokens são suportados.
| Token | Repo Privado | Repo público | Protocolo | Configurar |
|---|---|---|---|---|
github_token | ✅️ | ✅️ | Https | Desnecessário |
deploy_key | ✅️ | ✅️ | Ssh | Necessário |
personal_token | ✅️ | ✅️ | Https | Necessário |
Notas: Na verdade, o GITHUB_TOKEN trabalha para implantar nas páginas do GitHub, mas ainda possui algumas limitações. Para a primeira implantação, precisamos selecionar a filial gh-pages ou outra ramificação na guia Configurações do repositório. Veja a primeira implantação com GITHUB_TOKEN
Todas as ações corredores: Linux (Ubuntu), MacOS e Windows são suportados.
| corre | github_token | deploy_key | personal_token |
|---|---|---|---|
| Ubuntu-22.04 | ✅️ | ✅️ | ✅️ |
| Ubuntu-20.04 | ✅️ | ✅️ | ✅️ |
| Ubuntu-Latest | ✅️ | ✅️ | ✅️ |
| MacOS-Latest | ✅️ | ✅️ | ✅️ |
| Windows-Latest | ✅️ | (2) | ✅️ |
✅️ Github Enterprise Server é suportado acima de 2.22.6 .
Observe que o GITHUB_TOKEN criado pelo corredor pode não ter inerentemente os privilégios de push/publicação no GHES. Pode ser necessário criar/solicitar um usuário técnico com permissões de gravação ao seu repositório de destino.
github_tokendeploy_keypersonal_tokenpublish_branchpublish_dirdestination_direxclude_assets FIRcnameenable_jekyllallow_empty_commitkeep_filesexternal_repositoryforce_orphanGITHUB_TOKEN Adicione seu arquivo de fluxo de trabalho .github/workflows/gh-pages.yml e empurre-o para sua ramificação padrão remota.
Aqui está um exemplo de fluxo de trabalho para Hugo.
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| Visão geral do log de ações | Github Pages Log |
|---|---|
![]() | ![]() |
github_token Esta opção é para GITHUB_TOKEN , não um token de acesso pessoal.
Um corredor de ações do GitHub cria automaticamente um segredo GITHUB_TOKEN para usar no seu fluxo de trabalho. Você pode usar o GITHUB_TOKEN para autenticar em uma execução do fluxo de trabalho.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public Para mais detalhes sobre GITHUB_TOKEN : autenticação de token automática - Docs do GitHub
deploy_key Leia Crie a chave de implantação SSH, crie sua chave de implantação SSH e defina a opção deploy_key como a seguinte.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
deploy_key : ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir : ./publicpersonal_token Gere um token de acesso pessoal ( repo ) e adicione -o aos segredos como PERSONAL_TOKEN , ele funciona e ACTIONS_DEPLOY_KEY .
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
personal_token : ${{ secrets.PERSONAL_TOKEN }}
publish_dir : ./publicpublish_branch Defina um nome de ramificação para usar como ramo do GitHub Pages. O padrão é gh-pages .
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_branch : your-branch # default: gh-pagespublish_dir Um diretório de origem para implantar para as páginas do GitHub. O padrão é public . Somente o conteúdo deste diretor é empurrado para o ramo do Github Pages, gh-pages por padrão.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./out # default: publicdestination_dirEsse recurso está na versão beta. Qualquer feedback é bem -vindo na edição #324
Um subdiretório de destino em uma filial de publicação. O padrão está vazio.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
destination_dir : subdirexclude_assets FIREsse recurso está na versão beta. Qualquer feedback é bem -vindo na edição #163
Defina arquivos ou diretórios para excluir da publicação de ativos. O padrão é .github . Os valores devem ser divididos com uma vírgula.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
exclude_assets : ' .github,exclude-file1,exclude-file2 ' Set exclude_assets para esvaziar para incluir o diretório .github para ativos de implantação.
- 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 : ' ' A opção exclude_assets suporta padrões globais.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
exclude_assets : ' .github,exclude-file.txt,exclude-dir/**.txt 'cname Para adicionar o arquivo CNAME , podemos definir a opção cname . Como alternativa, coloque seu arquivo CNAME em seu publish_dir . (por exemplo, public/CNAME )
Para obter mais detalhes sobre o arquivo CNAME , leia a documentação oficial: Gerenciando um domínio personalizado para o seu site de páginas do Github - Docs do GitHub
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
cname : github.comenable_jekyll Se você deseja que as páginas do GitHub processem seu site com o gerador de sites estático Jekyll, set enable_jekyll como true.
Por padrão, essa ação sinaliza para as páginas do GitHub que o Site não deve ser processado com Jekyll. Isso é feito adicionando um arquivo .nojekyll vazio em sua filial de publicação. Quando esse arquivo já existe, essa ação não faz nada.
A ignição de Jekyll torna a implantação mais rapidamente e é necessária se você estiver implantando arquivos ou diretórios que começam com sublinhados, pois Jekyll os considera recursos especiais e não os copia para o site final. Você só precisa definir enable_jekyll como TRUE quando deseja implantar um site movido a Jekyll e permitir que as páginas do GitHub faça o processamento Jekyll.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
enable_jekyll : true Para mais detalhes sobre .nojekyll : ignorando Jekyll nas páginas do Github - o blog do Github
allow_empty_commit Por padrão, uma confirmação não será gerada quando nenhum arquivo for alterado. Se você deseja permitir uma confirmação vazia, defina o parâmetro opcional allow_empty_commit como true .
Por exemplo:
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
allow_empty_commit : truekeep_files Por padrão, os arquivos existentes na ramificação Publish (ou apenas em destination_dir se fornecidos) serão removidos. Se você deseja que a ação adicione novos arquivos, mas deixe os existentes intocados, defina o parâmetro opcional keep_files como true .
Observe que os usuários que estão usando um gerador de sites estáticos não precisam dessa opção na maioria dos casos. Reconsidere a estrutura do projeto e a criação de scripts ou use um recurso interno de um gerador de sites estáticos antes de ativar esse sinalizador.
Por exemplo:
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
keep_files : trueCom o V3, esta opção não suporta trabalhar com a opção Force_orphan. O próximo grande lançamento (versão 4) apoiará isso. Veja a edição #455
external_repository Por padrão, seus arquivos são publicados no repositório que está executando esta ação. Se você deseja publicar em outro repositório no Github, defina a variável de ambiente external_repository como <username>/<external-repository> .
Por exemplo:
- 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 Você pode usar deploy_key ou personal_token . Ao usar deploy_key , defina sua chave privada para o repositório, que inclui essa ação e defina sua chave pública para o seu repositório externo.
Observe que GITHUB_TOKEN não tem permissão para acessar repositórios externos. Crie um token de acesso pessoal e defina -o como personal_token como personal_token: ${{ secrets.PERSONAL_TOKEN }} .
Caso de uso:
Uma conta de plano gratuito do GitHub não pode usar as páginas do GitHub em um repositório privado. Para tornar seu conteúdo de origem privado e implantá -lo nas páginas do Github, você pode implantar seu site de um repositório privado em um repositório público usando esta opção.
peaceiris/homepage : um repositório privado executando esta ação com external_repository: peaceiris/peaceiris.github.iopeaceiris/peaceiris.github.io : um repositório público usando páginas do GitHubforce_orphan Podemos definir a opção force_orphan: true . Isso permite que você faça seu ramo de publicação com apenas o último compromisso.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
force_orphan : true Definir git config user.name e git config user.email . Uma confirmação é sempre criada com o mesmo usuário.
- 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 ' 
Defina uma mensagem de confirmação personalizada. Quando criarmos um compromisso com uma mensagem docs: Update some post , um compromisso de implantação será gerado com uma mensagem 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 }} 
Para definir uma mensagem de confirmação personalizada completa sem um hash de comprometimento acionado, use a opção full_commit_message em vez da opção 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 }}Aqui está um exemplo de fluxo de trabalho.
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 }} 'Comandos em uma máquina local.
$ # 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 branchGere sua chave de implantação com o seguinte comando.
ssh-keygen -t rsa -b 4096 -C " $( git config user.email ) " -f gh-pages -N " "Você receberá 2 arquivos:
gh-pages.pub é uma chave públicagh-pages é uma chave privadaEm seguida, vá para configurações de repositório
ACTIONS_DEPLOY_KEY| Adicione sua chave pública | Sucesso |
|---|---|
![]() | ![]() |
| Adicione sua chave privada | Sucesso |
|---|---|
![]() | ![]() |
GITHUB_TOKEN O GITHUB_TOKEN possui limitações para a primeira implantação, portanto, precisamos selecionar a ramificação do Github Pages na guia Configurações do repositório. Depois disso, faça a segunda implantação como as fotos a seguir.
| Primeira implantação falhou | Vá para a guia Configurações |
|---|---|
![]() | ![]() |
| Selecione ramificação | Implantando novamente e sucedido |
|---|---|
![]() | ![]() |
Se a ação não conseguir empurrar a confirmação ou marcar com o seguinte erro:
/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" Adicione a permissão de gravação às permissions.contents em um fluxo de trabalho/trabalho.
permissions :
contents : write Como alternativa, você pode configurar as permissões padrão GITHUB_TOKEN selecionando permissões de leitura e gravação.
Recomendamos que você use a versão mais recente e específica desta ação para CI/CD estável. É útil assistir a este repositório (somente liberação) para verificar a versão mais recente desta ação.
Para atualização contínua, podemos usar o GitHub Native DependABot. Aqui está um exemplo de configuração do bot. O arquivo de configuração está localizado em .github/dependabot.yml .
version : 2
updates :
- package-ecosystem : " github-actions "
directory : " / "
schedule :
interval : " daily "
labels :
- " CI/CD "
commit-message :
prefix : ciConsulte a documentação oficial para obter mais detalhes sobre o Dependabot: mantendo suas dependências atualizadas automaticamente - Docs do GitHub
Para implantar regularmente, podemos definir o acionador de fluxo de trabalho on.schedule . Veja eventos programados | Eventos que desencadeiam fluxos de trabalho - Docs do GitHub
Para implantar manualmente, podemos definir o acionador de fluxo de trabalho on.workflow_dispatch . Consulte Eventos Manuais workflow_dispatch | Eventos que desencadeiam fluxos de trabalho - Docs do GitHub
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 :
...cf. Suporte: Execução de Hashref desativado/quebrado vs github Ações melhores práticas de segurança? · Edição #712 · Peaceiris/Ações-Gh-Pages
Nosso projeto cria e fornece ativos de construção apenas ao criar uma versão. Isso é para impedir que o usuário execute esta ação com uma ramificação específica (como principal). Por exemplo, se mantivermos os ativos de construção na ramificação principal e os usuários usam essa ação da seguinte forma, uma grande versão, incluindo mudanças de quebra, quebrará o fluxo de trabalho do IC dos usuários em silêncio.
- uses : peaceiris/actions-gh-pages@main # Bad example!
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./publicNeste projeto, uma tag importante (por exemplo, V3) é garantida para não conter alterações de ruptura. Porém, recomendamos o uso de uma tag ou um hash de comprometimento para a estabilidade dos seus fluxos de trabalho.
- 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 : ./publicPara verificar o ativo de liberação, podemos usar os seguintes comandos.
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 e assim por diante. Verifique onde está o diretório de saída antes de pressionar seu fluxo de trabalho. Por exemplo, create-react-app exige que publish_dir seja definido como ./build
Premissa: as dependências são gerenciadas pelo package.json e 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 : ./publicUm exemplo para o projeto Gatsby (Gatsby.js) com 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 : ./publicUm exemplo do projeto Next.js (react.js) com 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 : ./outUm exemplo para o projeto Nuxt.js (vue.js) com 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 : ./distUm exemplo de fluxo de trabalho para docusaurus.
npx @docusaurus/init@next init website classic é útil para criar um novo projeto 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/buildPelican, Mkdocs, Sphinx e assim por diante.
Premissa: as dependências são gerenciadas por 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 : ./siteUm exemplo de fluxo de trabalho de ações do GitHub para implantar o site Rust-Lang/MDBook nas páginas do 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 Dica: Você pode querer publicar seus RustDocs. E use links relativos a partir dos documentos do MD e faça com que eles sejam verificados pelo mdbook . Então, de acordo com o documento, você pode colocar ./target/doc/ para o seu ./book/src dir antes do mdbook build e, em seguida, ele acabará em ./book/html/ e nas suas páginas do Github.
Um exemplo de fluxo de trabalho para o 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/webUm exemplo de fluxo de trabalho para 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 : ./publicUm exemplo de fluxo de trabalho para 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