forked from doocs/leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (111 loc) · 3.53 KB
/
deploy.yml
File metadata and controls
130 lines (111 loc) · 3.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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:
- name: Checkout main branch
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Checkout docs branch
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 --global user.name github-actions[bot]
git config --global user.email 41898282+github-actions[bot]@users.noreply.github.com
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Restore pip cache
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Restore mkdocs-material cache
uses: actions/cache@v4
with:
path: .cache
key: mkdocs-material-${{ env.cache_id }}
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
- name: Build site
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 config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
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