deploy #1867
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: deploy | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
paths: | |
- solution/** | |
- lcs/** | |
- lcp/** | |
- lcof2/** | |
- lcof/** | |
- lcci/** | |
- basic/** | |
concurrency: | |
group: ${{ github.workflow }} - ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/checkout@v4 | |
with: | |
ref: docs | |
path: mkdocs | |
fetch-depth: 0 | |
- name: Sync docs branch content | |
run: | | |
rsync -a --remove-source-files --exclude='.git' mkdocs/ ./ | |
rm -rf mkdocs | |
mv solution/CONTEST_README.md docs/contest.md | |
mv solution/CONTEST_README_EN.md docs-en/contest.md | |
- name: Configure Git Credentials | |
run: | | |
git config user.name github-actions[bot] | |
git config user.email 41898282+github-actions[bot]@users.noreply.github.com | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
with: | |
key: mkdocs-material-${{ env.cache_id }} | |
path: .cache | |
restore-keys: | | |
mkdocs-material- | |
- name: Install dependencies | |
run: | | |
python3 -m pip install --upgrade pip | |
python3 -m pip install -r requirements.txt | |
python3 -m pip install "mkdocs-material[imaging]" | |
sudo apt-get install -y pngquant | |
- name: Set MKDOCS_API_KEYS | |
run: echo "MKDOCS_API_KEYS=${{ secrets.MKDOCS_API_KEYS }}" >> $GITHUB_ENV | |
- run: | | |
python3 main.py | |
mkdocs build -f mkdocs.yml | |
mkdocs build -f mkdocs-en.yml | |
- name: Generate CNAME | |
run: echo "leetcode.doocs.org" > ./site/CNAME | |
- name: Commit committer cache to docs branch | |
if: github.ref == 'refs/heads/main' | |
env: | |
GH_REPO: ${{ github.repository }} | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
CACHE_FILE=".git-committers-cache.json" | |
if [[ ! -f "$CACHE_FILE" ]]; then | |
echo "Cache file not found; skip commit." | |
exit 0 | |
fi | |
echo "Cloning docs branch ..." | |
git clone --depth 1 --branch docs "https://x-access-token:${GH_TOKEN}@github.com/${GH_REPO}.git" docs-cache | |
cp "$CACHE_FILE" docs-cache/ | |
cd docs-cache | |
git add .git-committers-cache.json | |
git commit -m "chore: update committer cache [skip ci]" || echo "No changes to commit" | |
git push origin docs | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: ./site | |
deploy: | |
needs: build | |
runs-on: ubuntu-latest | |
permissions: | |
pages: write | |
id-token: write | |
environment: | |
name: github_pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |