-
Notifications
You must be signed in to change notification settings - Fork 6
144 lines (122 loc) · 4.07 KB
/
Copy pathdeploy.yml
File metadata and controls
144 lines (122 loc) · 4.07 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
136
137
138
139
140
141
142
143
144
name: Deploy Hugo Site with Jekyll Redirects
on:
push:
branches:
- main
- html
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
defaults:
run:
shell: bash
jobs:
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.128.0
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Setup Hugo
uses: peaceiris/actions-hugo@v3
with:
hugo-version: ${{ env.HUGO_VERSION }}
extended: true
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install npm dependencies
run: npm ci
- name: Build Tailwind CSS
run: npm run build:css
- name: Sync version data from docs repo
run: |
curl -o static/data/external.json https://raw.githubusercontent.com/dataplat/dbatools-docs/main/assets/external.json || echo "Warning: Could not sync version data"
- name: Transform dbatools index to commands.json
shell: pwsh
run: |
Write-Host "Transforming dbatools-index.json to commands.json..."
./scripts/transform-dbatools-index.ps1
Write-Host "✓ Transformation complete"
- name: Generate command documentation pages
shell: pwsh
run: |
Write-Host "Generating command documentation markdown files..."
./scripts/generate-command-pages.ps1
Write-Host "✓ Command pages generated successfully"
- name: Enrich commands.json with full content
shell: pwsh
run: |
Write-Host "Enriching commands.json with markdown content..."
./scripts/enrich-commands-json.ps1
Write-Host "✓ Enrichment complete"
- name: Update popular commands with rankings
shell: pwsh
run: |
Write-Host "Updating popular commands from rankings..."
./scripts/update-popular-commands.ps1
Write-Host "✓ Popular commands updated"
- name: Ensure commands URLs are correct
shell: pwsh
run: |
Write-Host "Verifying command URLs..."
./scripts/update-commands-urls.ps1
Write-Host "✓ URLs verified"
- name: Build Hugo site
run: hugo --minify
- name: Setup Ruby for Jekyll redirects
uses: ruby/setup-ruby@v1
with:
ruby-version: "3.1"
bundler-cache: false
- name: Install Jekyll and dependencies
run: |
gem install jekyll bundler
gem install jekyll-redirect-from
- name: Build Jekyll redirects
run: |
# Build Jekyll site with redirects
# Jekyll will process only the redirect/ folder and create HTML redirects
jekyll build --source ./redirect --destination _site/redirect
# Copy only the generated redirect HTML files to Hugo's public directory
# Skip copying other Jekyll-generated content
if [ -d "_site/redirect" ]; then
cp -r _site/redirect/* public/ 2>/dev/null || true
fi
# Also copy any top-level redirect files that were generated
find _site -maxdepth 1 -name "*.html" -type f | while read file; do
basename_file=$(basename "$file")
# Skip index.html and other non-redirect files
if [ "$basename_file" != "index.html" ]; then
cp "$file" "public/$basename_file" 2>/dev/null || true
fi
done
rm -rf _site
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./public
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4