1
+ name : Deploy Docs on new release
2
+
3
+ on :
4
+ release :
5
+ types :
6
+ - published
7
+ - edited
8
+ - released
9
+
10
+ jobs :
11
+ deploy :
12
+ name : Deploy to CloudFlare Pages
13
+ env :
14
+ CLOUDFLARE_PROJECT_NAME : cortex-docs
15
+ runs-on : ubuntu-latest
16
+ permissions :
17
+ contents : write
18
+ deployments : write
19
+ pull-requests : write
20
+ steps :
21
+ - uses : actions/checkout@v4
22
+ with :
23
+ ref : dev
24
+ - uses : actions/setup-node@v3
25
+ with :
26
+ node-version : 18
27
+
28
+ - name : Install jq
29
+
30
+
31
+ - name : Fill env vars
32
+ working-directory : docs
33
+ continue-on-error : true
34
+ run : |
35
+ env_example_file=".env.example"
36
+ touch .env
37
+ while IFS= read -r line || [[ -n "$line" ]]; do
38
+ if [[ "$line" == *"="* ]]; then
39
+ var_name=$(echo $line | cut -d '=' -f 1)
40
+ echo $var_name
41
+ var_value="$(jq -r --arg key "$var_name" '.[$key]' <<< "$SECRETS")"
42
+ echo "$var_name=$var_value" >> .env
43
+ fi
44
+ done < "$env_example_file"
45
+ env :
46
+ SECRETS : ' ${{ toJson(secrets) }}'
47
+
48
+ - name : Install dependencies
49
+ working-directory : docs
50
+ run : yarn install
51
+ - name : Build website
52
+ working-directory : docs
53
+ run : export NODE_ENV=production && yarn build
54
+
55
+ - name : Copy redirect file
56
+ working-directory : docs
57
+ continue-on-error : true
58
+ run : cp _redirects build/_redirects
59
+
60
+ - name : Publish to Cloudflare Pages Production
61
+ uses : cloudflare/pages-action@v1
62
+ with :
63
+ apiToken : ${{ secrets.CLOUDFLARE_API_TOKEN }}
64
+ accountId : ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
65
+ projectName : ${{ env.CLOUDFLARE_PROJECT_NAME }}
66
+ directory : ./docs/build
67
+ branch : main
68
+ # Optional: Enable this if you want to have GitHub Deployments triggered
69
+ gitHubToken : ${{ secrets.GITHUB_TOKEN }}
0 commit comments