


Notiz
Siehe auch zuerst die github offizielle Github -Seiten.
Dies ist eine GitHub -Aktion , um Ihre statischen Dateien auf GitHub -Seiten bereitzustellen. Diese Bereitstellungsaktion kann einfach und frei mit statischen Site -Generatoren kombiniert werden. (Hugo, Mkdocs, Gatsby, Mdbook, Weiter, Nuxt und so weiter.)
gh-pages nächste Beispielschritt wird ein ./public
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public Für Neulinge von GitHub -Aktionen: Beachten Sie, dass das GITHUB_TOKEN kein persönlicher Zugriffs -Token ist. Ein GitHub -Aktions -Runner erstellt automatisch ein GITHUB_TOKEN -Geheimnis, um sich in Ihrem Workflow zu authentifizieren. Sie können also sofort ohne Konfiguration mit der Bereitstellung bereitstellen.
Drei Token werden unterstützt.
| Token | Privates Repo | Öffentliches Repo | Protokoll | Aufstellen |
|---|---|---|---|---|
github_token | ✅️ | ✅️ | Https | Unnötig |
deploy_key | ✅️ | ✅️ | Ssh | Notwendig |
personal_token | ✅️ | ✅️ | Https | Notwendig |
Hinweise: Tatsächlich funktioniert das GITHUB_TOKEN für die Bereitstellung auf Github -Seiten, hat jedoch immer noch einige Einschränkungen. Für die erste Bereitstellung müssen wir die gh-pages -Filiale oder einen anderen Zweig auf der Registerkarte "Repository-Einstellungen" auswählen. Siehe erste Bereitstellung mit GITHUB_TOKEN
Alle Aktionen Läufer: Linux (Ubuntu), macOS und Windows werden unterstützt.
| läuft | github_token | deploy_key | personal_token |
|---|---|---|---|
| Ubuntu-22.04 | ✅️ | ✅️ | ✅️ |
| Ubuntu-20.04 | ✅️ | ✅️ | ✅️ |
| Ubuntu-latest | ✅️ | ✅️ | ✅️ |
| macos-latest | ✅️ | ✅️ | ✅️ |
| Windows-Latest | ✅️ | (2) | ✅️ |
✅️ GitHub Enterprise Server wird oben 2.22.6 unterstützt.
Beachten Sie, dass das vom Läufer erstellte GITHUB_TOKEN möglicherweise nicht von Natur aus Push/Veröffentlichungsrechte auf Ghes hat. Möglicherweise müssen Sie einen technischen Benutzer mit Schreibberechtigungen für Ihr Zielrepository erstellen/anfordern.
github_token von Läuferdeploy_key festlegenpersonal_token festlegenpublish_branchpublish_dirdestination_dir eingesetzt werdenexclude_assetscname hinzufügenenable_jekyllallow_empty_commitkeep_files behaltenexternal_repository bereitgestelltforce_orphanGITHUB_TOKEN Fügen Sie Ihre Workflow-Datei hinzu .github/workflows/gh-pages.yml und schieben Sie sie in Ihre Remote-Standardzweig.
Hier ist ein Beispiel Workflow für 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| Aktionen Protokollübersicht | GitHub -Seiten log |
|---|---|
![]() | ![]() |
github_token von Läufer Diese Option ist für GITHUB_TOKEN , kein persönlicher Zugriffs -Token.
Ein GitHub -Aktions -Runner erstellt automatisch ein GITHUB_TOKEN -Geheimnis, das Sie in Ihrem Workflow verwenden können. Sie können das GITHUB_TOKEN verwenden, um sich in einem Workflow -Lauf zu authentifizieren.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public Weitere Informationen zu GITHUB_TOKEN : Automatische Token -Authentifizierung - Github -Dokumente
deploy_key festlegen Lesen Sie das Erstellen von SSH -Bereitstellungsschlüssel, erstellen Sie Ihren SSH -Bereitstellungsschlüssel und legen Sie die Option deploy_key wie folgt fest.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
deploy_key : ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir : ./publicpersonal_token festlegen Generieren Sie ein persönliches Zugriffs -Token ( repo ) und fügen Sie es zu ACTIONS_DEPLOY_KEY als PERSONAL_TOKEN hinzu.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
personal_token : ${{ secrets.PERSONAL_TOKEN }}
publish_dir : ./publicpublish_branch Legen Sie einen Zweignamen fest, der als GitHub Pages -Zweig verwendet wird. Der Standard sind gh-pages .
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_branch : your-branch # default: gh-pagespublish_dir Ein Quellverzeichnis, das auf Github -Seiten bereitgestellt werden kann. Der Standard ist public . Nur der Inhalt dieser Dire wird standardmäßig auf Github Pages-Zweig, gh-pages gedrückt.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./out # default: publicdestination_dir eingesetzt werdenDiese Funktion ist auf Beta. Jedes Feedback ist in Ausgabe Nr. 324 willkommen
Ein Zielunterverzeichnis in einer Verlagszweig. Der Standard ist leer.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
destination_dir : subdirexclude_assetsDiese Funktion ist auf Beta. Jedes Feedback ist in Ausgabe Nr. 163 willkommen
Stellen Sie Dateien oder Verzeichnisse fest, um sie aus dem Veröffentlichungsvermögen auszuschließen. Der Standard ist .github . Die Werte sollten mit einem Komma aufgeteilt werden.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
exclude_assets : ' .github,exclude-file1,exclude-file2 ' Setzen Sie exclude_assets auf leer, um das .github -Verzeichnis in die Bereitstellung von Vermögenswerten aufzunehmen.
- 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 : ' ' Die Option exclude_assets unterstützt Glob -Muster.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
exclude_assets : ' .github,exclude-file.txt,exclude-dir/**.txt 'cname hinzufügen Um die CNAME -Datei hinzuzufügen, können wir die cname -Option festlegen. Geben Sie Ihre CNAME -Datei alternativ in Ihr publish_dir ein. (zB public/CNAME )
Weitere Informationen zur CNAME -Datei finden Sie in der offiziellen Dokumentation: Verwalten einer benutzerdefinierten Domain für Ihre GitHub -Seiten -Site - Github -Dokumente
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
cname : github.comenable_jekyll Wenn Sie möchten, dass GitHub -Seiten Ihre Website mit dem statischen Site -Generator Jekyll verarbeiten, setzen Sie enable_jekyll auf true fest.
Standardmäßig signalisiert diese Aktion auf Github -Seiten, dass die Website nicht mit Jekyll verarbeitet werden darf. Dies erfolgt durch Hinzufügen einer leeren .nojekyll -Datei in Ihrer Verlagszweig. Wenn diese Datei bereits vorhanden ist, tut diese Aktion nichts.
Durch die Umgehung von Jekyll wird die Bereitstellung schneller und ist erforderlich, wenn Sie Dateien oder Verzeichnisse bereitstellen, die mit Unterstrichen beginnen, da Jekyll dies als spezielle Ressourcen betrachtet und sie nicht auf die endgültige Website kopiert. Sie müssen nur enable_jekyll auf true festlegen, wenn Sie eine von Jekyll betriebene Website bereitstellen möchten und GitHub-Seiten die Jekyll-Verarbeitung durchführen lassen möchten.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
enable_jekyll : true Weitere Informationen zu .nojekyll : Umgang mit Jekyll auf Github -Seiten - The Github Blog
allow_empty_commit Standardmäßig wird ein Commit nicht generiert, wenn sich keine Datei ändert. Wenn Sie ein leeres Commit zulassen möchten, setzen Sie den optionalen Parameter allow_empty_commit auf true .
Zum Beispiel:
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
allow_empty_commit : truekeep_files behalten Standardmäßig werden vorhandene Dateien in der Veröffentlichungszweig (oder nur in destination_dir ) entfernt. Wenn Sie möchten, dass die Aktion neue Dateien hinzufügt, aber vorhandene vorhandene unberührte lassen, legen Sie den optionalen Parameter keep_files auf true fest.
Beachten Sie, dass Benutzer, die einen statischen Site -Generator verwenden, diese Option in den meisten Fällen nicht benötigen. Bitte überdenken Sie Ihre Projektstruktur und das Erstellen von Skripten oder verwenden Sie eine integrierte Funktion eines statischen Site-Generators, bevor Sie dieses Flag aktivieren.
Zum Beispiel:
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
keep_files : trueMit der V3 unterstützt diese Option nicht die Arbeit mit der Option craft_orphan. Die nächste große Veröffentlichung (Version 4) unterstützt dies. Siehe Ausgabe Nr. 455
external_repository bereitgestellt Standardmäßig werden Ihre Dateien im Repository veröffentlicht, in dem diese Aktion ausgeführt wird. Wenn Sie in einem anderen Repository auf GitHub veröffentlichen möchten, setzen Sie die Umgebungsvariable external_repository auf <username>/<external-repository> .
Zum Beispiel:
- 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 Sie können deploy_key oder personal_token verwenden. Wenn Sie deploy_key verwenden, setzen Sie Ihren privaten Schlüssel auf das Repository, das diese Aktion enthält, und setzen Sie Ihren öffentlichen Schlüssel auf Ihr externes Repository.
Beachten Sie, dass GITHUB_TOKEN keine Erlaubnis hat, auf externe Repositorys zuzugreifen. Bitte erstellen Sie ein persönliches Zugriffs -Token und setzen Sie es auf personal_token wie personal_token: ${{ secrets.PERSONAL_TOKEN }} .
Anwendungsfall:
Ein GitHub Free Plan -Konto kann die GitHub -Seiten in einem privaten Repository nicht verwenden. Um Ihre Quellinhalte privat zu gestalten und mit den GitHub -Seiten bereitzustellen, können Sie Ihre Website mit dieser Option in einem privaten Repository in ein öffentliches Repository bereitstellen.
peaceiris/homepage : Ein privates Repository, das diese Aktion mit external_repository: peaceiris/peaceiris.github.iopeaceiris/peaceiris.github.io : Ein öffentliches Repository mit Github -Seitenforce_orphan Wir können die Option force_orphan: true festlegen. Auf diese Weise können Sie Ihre Veröffentlichungsbranche nur mit dem neuesten Commit machen.
- name : Deploy
uses : peaceiris/actions-gh-pages@v4
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./public
force_orphan : true Setzen Sie benutzerdefinierte git config user.name und git config user.email . Ein Commit wird immer mit demselben Benutzer erstellt.
- 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 ' 
Legen Sie eine benutzerdefinierte Commit -Nachricht fest. Wenn wir ein Commit mit einer Nachrichtendokumente erstellen docs: Update some post , wird ein Bereitstellungsausschuss mit einer 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 }} 
Verwenden Sie die Option full_commit_message anstelle der Option commit_message , um eine vollständige benutzerdefinierte Commit -Nachricht ohne ausgelöstes Commit Hash festzulegen.
- 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 }}Hier ist ein Beispiel Workflow.
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 }} 'Befehle auf einer lokalen Maschine.
$ # 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 branchGenerieren Sie Ihren Bereitstellungsschlüssel mit dem folgenden Befehl.
ssh-keygen -t rsa -b 4096 -C " $( git config user.email ) " -f gh-pages -N " "Sie erhalten 2 Dateien:
gh-pages.pub ist ein öffentlicher Schlüsselgh-pages ist ein privater SchlüsselGehen Sie als Nächstes zu Repository -Einstellungen
ACTIONS_DEPLOY_KEY hinzu| Fügen Sie Ihren öffentlichen Schlüssel hinzu | Erfolg |
|---|---|
![]() | ![]() |
| Fügen Sie Ihren privaten Schlüssel hinzu | Erfolg |
|---|---|
![]() | ![]() |
GITHUB_TOKEN Das GITHUB_TOKEN verfügt über Einschränkungen für die erste Bereitstellung, sodass wir den GitHub Pages -Zweig auf der Registerkarte Repository -Einstellungen auswählen müssen. Führen Sie danach die zweite Bereitstellung wie die folgenden Bilder durch.
| Der erste Einsatz ist fehlgeschlagen | Gehen Sie zur Registerkarte Einstellungen |
|---|---|
![]() | ![]() |
| Zweig auswählen | Wieder einsetzen und erfolgreich sein |
|---|---|
![]() | ![]() |
Wenn die Aktion nicht mit dem folgenden Fehler das Commit oder das Tag voranzutreiben oder markiert wird:
/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" Bitte fügen Sie die Schreibberechtigung in die permissions.contents hinzu. In einen Workflow/Job.
permissions :
contents : write Alternativ können Sie die Standardberechtigungen GITHUB_TOKEN konfigurieren, indem Sie Lese- und Schreibberechtigungen auswählen.
Wir empfehlen Ihnen, die neueste und spezifische Version dieser Aktion für stabile CI/CD zu verwenden. Es ist nützlich, dieses Repository (nur Version) zu sehen, um die neueste Version dieser Aktion zu überprüfen.
Zur kontinuierlichen Aktualisierung können wir den GitHub Native Depelabot verwenden. Hier ist eine Beispielkonfiguration des Bots. Die Konfigurationsdatei befindet sich in .github/dependabot.yml .
version : 2
updates :
- package-ecosystem : " github-actions "
directory : " / "
schedule :
interval : " daily "
labels :
- " CI/CD "
commit-message :
prefix : ciWeitere Informationen zum Abhängigkeit finden Sie in der offiziellen Dokumentation: Halten Sie Ihre Abhängigkeiten automatisch aktualisiert - Github -Dokumente
Für die regelmäßige Bereitstellung können wir den Workflow -Auslöser on.schedule festlegen. Siehe geplante Veranstaltungen | Ereignisse, die Workflows auslösen - Github -Dokumente
Für die manuelle Bereitstellung können wir den Workflow -Auslöser on.workflow_dispatch festlegen. Siehe manuelle Ereignisse workflow_dispatch | Ereignisse, die Workflows auslösen - Github -Dokumente
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 :
...vgl. Support: Ausführung von Hashref Deaktiviert/gebrochen gegen GitHub -Aktionen Sicherheit Best Practice? · Ausgabe Nr. 712 · Friedens-/Aktionen-GH-Seiten
Unser Projekt baut und bietet Build -Assets nur beim Erstellen einer Version. Dies soll verhindern, dass der Benutzer diese Aktion mit einer bestimmten Filiale (wie Main) ausführt. Wenn wir beispielsweise Build -Vermögenswerte in der Hauptzweigung beibehalten und Benutzer diese Aktion wie folgt verwenden, wird eine wichtige Veröffentlichung einschließlich Breaking -Änderungen den CI -Workflow der Benutzer stillschweigend durchbrechen.
- uses : peaceiris/actions-gh-pages@main # Bad example!
with :
github_token : ${{ secrets.GITHUB_TOKEN }}
publish_dir : ./publicIn diesem Projekt wird garantiert ein großes Tag (z. B. V3) keine Bruchänderungen enthalten. Wir empfehlen jedoch, ein Tag oder einen Commit -Hash für die Stabilität Ihrer Workflows zu verwenden.
- 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 : ./publicZur Überprüfung des Release -Assets können wir die folgenden Befehle verwenden.
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, erstellen React-App usw. Bitte überprüfen Sie, wo sich Ihr Ausgabeverzeichnis befindet, bevor Sie Ihren Workflow drücken. z. B. create-react-app müssen publish_dir auf ./build festlegen
Prämisse: Abhängigkeiten werden von package.json und package-lock.json verwaltet
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 : ./publicEin Beispiel für Gatsby (gatsby.js) Projekt mit 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 : ./publicEin Beispiel für das Next.js (React.js) -Projekt mit Create-Next-App-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 : ./outEin Beispiel für Nuxt.js (VUE.JS) -Projekt mit 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 : ./distEin Beispiel Workflow für Docusaurus.
npx @docusaurus/init@next init website classic ist nützlich, um ein neues Docusaurus -Projekt zu erstellen.
# .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 und so weiter.
Prämisse: Abhängigkeiten werden von requirements.txt verwaltet.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 : ./siteEin Beispiel für GitHub-Aktionen Workflow zur Bereitstellung von Rust-Lang/MDBook-Site auf GitHub-Seiten.
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 Tipp: Möglicherweise möchten Sie Ihre Rustdocs veröffentlichen. Und verwenden Sie relative Links dazu von den MD -Dokumenten und lassen Sie sie nach mdbook überprüfen. Laut Dokument können Sie dann ./target/doc/ an Ihr ./book/src Dir vor Ihrem mdbook build und dann wird es in ./book/html/ und in Ihren Github -Seiten enden.
Ein Beispiel -Workflow für Flutter -Webprojekt.
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/webEin Beispiel Workflow für 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 : ./publicEin Beispiel Workflow für Johnsundell/Veröffentlichung.
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