-
-
Notifications
You must be signed in to change notification settings - Fork 37
135 lines (114 loc) · 4.27 KB
/
preview-docs-deployment.yaml
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: Build Preview Docs to Netlify
on:
pull_request_target:
types:
- opened
- synchronize
- reopened
branches:
- main
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: Build - ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- name: Find Comment
uses: peter-evans/find-comment@v2
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: to Netlify - ${{ matrix.os }}
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
## 🚧 Deploying to Netlify - ${{ matrix.os }}
| Status | URL |
|-------------|--------------------------------------|
| Pending | `URL will be revealed once deployed` |
edit-mode: replace
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Node.js 20.x
uses: actions/setup-node@v3
with:
node-version: 20.x
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
run_install: false
version: 8
- name: Obtain pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Obtain pnpm store cache
uses: actions/cache@v3
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build docs
run: |
pnpm packages:build
pnpm docs:build
- name: Install Netlify CLI
run: pnpm install -g netlify-cli
- name: Push to Netlify - Linux
timeout-minutes: 10
working-directory: docs/
if : ${{ matrix.os == 'ubuntu-latest' }}
run: |
NETLIFY_JSON_OUTPUT=$(netlify deploy --dir .vitepress/dist --json)
echo $NETLIFY_JSON_OUTPUT
echo "NETLIFY_JSON_OUTPUT=$(echo $NETLIFY_JSON_OUTPUT)" >> $GITHUB_ENV
echo "NETLIFY_URL=$(echo $NETLIFY_JSON_OUTPUT | jq -r .deploy_url)" >> $GITHUB_ENV
cat $GITHUB_ENV
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
- name: Push to Netlify - Windows
timeout-minutes: 10
working-directory: docs\
if : ${{ matrix.os == 'windows-latest' }}
run: |
$NETLIFY_JSON_OUTPUT = netlify deploy --dir '.vitepress\dist' --json
Write-Host $NETLIFY_JSON_OUTPUT
Write-Host "NETLIFY_JSON_OUTPUT=$NETLIFY_JSON_OUTPUT" | Out-File -Append $env:GITHUB_ENV
# Parse JSON output and extract deploy_url
$ParsedJson = $NETLIFY_JSON_OUTPUT | ConvertFrom-Json
$NETLIFY_URL = $ParsedJson.deploy_url
"NETLIFY_URL=$NETLIFY_URL" | Out-File -Append $env:GITHUB_ENV
Get-Content $env:GITHUB_ENV
env:
NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
- name: Find Comment
uses: peter-evans/find-comment@v2
id: fc-post
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: to Netlify - ${{ matrix.os }}
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v3
with:
comment-id: ${{ steps.fc-post.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
## ✅ Deployed to Netlify - ${{ matrix.os }}
| Status | URL |
|-------------|-----------------------------------------------------|
| Success | ${{ env.NETLIFY_URL }} |
edit-mode: replace