asterinas/.github/workflows/publish_website.yml
2025-06-04 11:04:30 +08:00

55 lines
1.7 KiB
YAML

name: Publish website
on:
workflow_dispatch:
pull_request:
paths:
- docs/**
- .github/workflows/update-website.yml
push:
branches:
- main
paths:
- docs/**
- .github/workflows/update-website.yml
jobs:
build_and_deploy:
runs-on: ubuntu-latest
timeout-minutes: 15
container: asterinas/asterinas:0.15.0-20250516
steps:
- uses: actions/checkout@v2
with:
repository: 'asterinas/asterinas'
path: 'asterinas'
- name: Build the website
run: |
cd asterinas/docs
mdbook build
- name: Deploy website
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
env:
BOOK_PUBLISH_KEY: ${{ secrets.BOOK_PUBLISH_KEY }}
run: |
echo "$BOOK_PUBLISH_KEY\n" > ./book_publish_key
chmod 600 ./book_publish_key
ssh-keygen -y -f ./book_publish_key > /dev/null
ssh-keyscan -t rsa github.com >> ./known_hosts
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
GIT_SSH_COMMAND="ssh -i ./book_publish_key -o UserKnownHostsFile=./known_hosts" \
git clone git@github.com:asterinas/book.git temp_book
cd temp_book
git checkout --orphan newBranch
git rm -rf *
cp -r ../asterinas/docs/book/* ./
git add -A
git commit -am "Update website"
git branch -D main
git branch -m main
GIT_SSH_COMMAND="ssh -i ../book_publish_key -o UserKnownHostsFile=../known_hosts" \
git push -f origin main