1
0
mirror of https://github.com/jqlang/jq.git synced 2025-04-18 17:24:01 +03:00

website: deploy website from GitHub Actions (#3237)

Deploying GitHub Pages from the gh-pages branch is a classic way.
We can use actions/deploy-pages action to deploy GitHub Pages.
This commit is contained in:
itchyny 2025-01-28 11:40:55 +09:00 committed by GitHub
parent da28628edd
commit 39eea145b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 24 additions and 47 deletions

View File

@ -6,17 +6,16 @@ on:
paths:
- 'docs/**'
concurrency: website
permissions:
contents: write
jobs:
website:
build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Python
uses: actions/setup-python@v5
with:
@ -26,15 +25,23 @@ jobs:
run: pip install pipenv
- name: Install dependencies
run: pipenv sync
working-directory: docs
- name: Update website
run: scripts/update-website
- name: Commit changes
run: |
if ! git diff --quiet; then
git add --all
git config user.name 'github-actions[bot]'
git config user.email 'github-actions[bot]@users.noreply.github.com'
git commit -m 'Update website'
git push origin gh-pages
fi
- name: Build website
run: pipenv run python3 build_website.py
- name: Upload pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/output/
deploy:
needs: build
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v4
id: deployment

View File

@ -1,30 +0,0 @@
#!/bin/bash
# This script builds the website from the docs directory of
# the current branch and copies it over to the gh-pages
# branch.
set -eux
shopt -s dotglob
# build website
scriptdir=$(dirname "$0")
cd "$scriptdir"/../docs
rm -rf output
mkdir output
pipenv run python3 build_website.py
cd ..
# copy to /tmp
tmpdir=$(mktemp -d -t jq.website.XXXXXXXXXX)
cp -r docs/output/* "$tmpdir"
cp .gitignore "$tmpdir"
# copy to gh-pages
git checkout gh-pages
cp -r "$tmpdir"/* .
cp "$tmpdir"/.gitignore .
# clean up
rm -rf "$tmpdir"
echo SUCCESS