-
Notifications
You must be signed in to change notification settings - Fork 33
131 lines (115 loc) · 3.96 KB
/
Copy patharchive.yml
File metadata and controls
131 lines (115 loc) · 3.96 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
131
name: Build and deploy [Archive] to server
on:
workflow_dispatch:
inputs:
src:
description: "Docs Staging Branch"
type: string
default: archive
required: true
jobs:
build:
runs-on: ubuntu-latest
name: Build website
steps:
- name: Maximize build space
run: |
df -h
sudo rm -rf /usr/share/dotnet
sudo rm -rf /usr/local/lib/android
sudo rm -rf /opt/ghc
sudo rm -rf /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force
sudo docker builder prune --all --force
df -h
- uses: actions/checkout@v5
- uses: pnpm/action-setup@v4
with:
run_install: false
- uses: actions/setup-node@v5
with:
node-version: 22
cache: "pnpm"
- name: Update submodule
id: submodule
run: |
git submodule init
git submodule update --remote
cd docs
git checkout ${{ inputs.src }}
cd ..
echo "submodule_sha=$(git submodule status | awk '{print $1}' | sed -r 's/[+-]+//g')" >> $GITHUB_OUTPUT
echo "submodule_status=$(git submodule status)" >> $GITHUB_OUTPUT
echo "git_sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
echo "build_date=$(date)" >> $GITHUB_OUTPUT
- name: Install deps
run: pnpm install --frozen-lockfile
- name: Calc gatsby cache key
id: calc-cache-key
run: |
echo "key=${{ steps.submodule.outputs.submodule_sha }}" >> $GITHUB_OUTPUT
- name: Restore gatsby cache
uses: actions/cache@v3
id: gatsby-cache
with:
path: |
.cache
public
key: ${{ runner.os }}-archive-gatsby-cache-docs-staging-${{ steps.calc-cache-key.outputs.key }}
restore-keys: |
${{ runner.os }}-archive-gatsby-cache-docs-staging-
- name: Clean up temporary files
run: |
sudo rm -rf /tmp/*
sudo rm -rf /home/runner/work/_temp/*
- name: Build website
env:
CI: true
GATSBY_ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
GATSBY_ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
GATSBY_DOC_BUILD_DATE: ${{ steps.submodule.outputs.build_date }}
GATSBY_DOC_BUILD_GIT_SHA: ${{ steps.submodule.outputs.git_sha }}
GATSBY_DOC_BUILD_SUBMODULE_SHA: ${{ steps.submodule.outputs.submodule_status }}
WEBSITE_BUILD_TYPE: archive
run: |
pnpm build
- name: Check output
id: check-output
run: |
sudo apt install tree
tree public
- name: Install coscli
run: |
wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux-amd64
mv coscli-linux-amd64 coscli
chmod 755 coscli
- name: Deploy to COS
run: |
./coscli sync public/ cos://${{ secrets.TENCENTCLOUD_ARCHIVE_BUCKET_ID }} \
--init-skip \
--recursive \
--routines 16 \
--secret-id ${{ secrets.TENCENTCLOUD_SECRET_ID }} \
--secret-key ${{ secrets.TENCENTCLOUD_SECRET_KEY }} \
--endpoint cos.na-ashburn.myqcloud.com \
--delete \
--force
cdn-refresh:
needs: build
runs-on: ubuntu-latest
name: Refresh CDN Cache
env:
TENCENTCLOUD_SECRET_ID: ${{ secrets.TENCENTCLOUD_SECRET_ID }}
TENCENTCLOUD_SECRET_KEY: ${{ secrets.TENCENTCLOUD_SECRET_KEY }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python environment
uses: actions/setup-python@v5
with:
python-version: "3.12"
architecture: "x64"
- name: Install Tencent Cloud CLI
run: pipx install tccli
- name: Purge production CDN cache
run: tccli cdn PurgePathCache --Paths '["https://docs-archive.pingcap.com/"]' --FlushType flush