-
Notifications
You must be signed in to change notification settings - Fork 5
135 lines (115 loc) · 3.54 KB
/
Copy pathdocs-site-deploy.yml
File metadata and controls
135 lines (115 loc) · 3.54 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
132
133
134
135
name: Docs site deploy
on:
push:
branches:
- main
paths:
- ".github/workflows/docs-site-deploy.yml"
- "apps/docs-site/**"
- "package.json"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
- "tsconfig.base.json"
pull_request:
paths:
- ".github/workflows/docs-site-deploy.yml"
- "apps/docs-site/**"
- "package.json"
- "pnpm-lock.yaml"
- "pnpm-workspace.yaml"
- "tsconfig.base.json"
workflow_dispatch:
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
permissions:
contents: read
concurrency:
group: docs-site-${{ github.event.pull_request.head.ref || github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build docs site
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10.6.5
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm
- name: Print toolchain versions
run: |
node --version
pnpm --version
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build docs site
run: pnpm docs:build
- name: Upload docs build artifact
uses: actions/upload-artifact@v4
with:
name: docs-site-build
path: apps/docs-site/build/client
retention-days: 7
deploy:
name: Deploy docs site
runs-on: ubuntu-latest
timeout-minutes: 15
needs: build
if: github.ref == 'refs/heads/main'
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download docs build artifact
uses: actions/download-artifact@v4
with:
name: docs-site-build
path: apps/docs-site/build/client
- name: Check Cloudflare deploy posture
id: cloudflare_ready
shell: bash
run: |
if [[ -z "$CLOUDFLARE_API_TOKEN" || -z "$CLOUDFLARE_ACCOUNT_ID" ]]; then
echo "::notice::Skipping docs deploy because Cloudflare secrets are not configured."
echo "ready=false" >> "$GITHUB_OUTPUT"
exit 0
fi
echo "ready=true" >> "$GITHUB_OUTPUT"
- name: Setup pnpm
if: steps.cloudflare_ready.outputs.ready == 'true'
uses: pnpm/action-setup@v4
with:
version: 10.6.5
- name: Setup Node.js
if: steps.cloudflare_ready.outputs.ready == 'true'
uses: actions/setup-node@v4
with:
node-version: 24
cache: pnpm
- name: Print toolchain versions
if: steps.cloudflare_ready.outputs.ready == 'true'
run: |
node --version
pnpm --version
- name: Install dependencies
if: steps.cloudflare_ready.outputs.ready == 'true'
run: pnpm install --frozen-lockfile
- name: Deploy docs site
if: steps.cloudflare_ready.outputs.ready == 'true'
run: |
pnpm exec wrangler pages deploy apps/docs-site/build/client \
--project-name role-model-dev \
--branch main \
--commit-hash "${GITHUB_SHA}"
- name: Verify docs deployment
if: steps.cloudflare_ready.outputs.ready == 'true'
run: curl --fail --silent --show-error --retry 5 --retry-delay 5 https://role-model.dev/ > /dev/null