-
Notifications
You must be signed in to change notification settings - Fork 3
140 lines (117 loc) · 3.69 KB
/
test-docs-generation.yml
File metadata and controls
140 lines (117 loc) · 3.69 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
name: Test Documentation Generation
on:
workflow_dispatch:
inputs:
branch_type:
description: 'Type of branch to simulate'
required: true
default: 'main'
type: choice
options:
- main
- release/v1
- release/v2
pull_request:
branches:
- main
permissions:
contents: read
pages: write
id-token: write
jobs:
test-docs-generation:
runs-on: ubuntu-latest
environment:
name: github-pages-test
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true
- name: Install dependencies
run: npm ci
- name: Set branch type based on trigger
id: set-branch
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "BRANCH_TYPE=${{ github.event.inputs.branch_type }}" >> $GITHUB_ENV
else
echo "BRANCH_TYPE=main" >> $GITHUB_ENV
fi
echo "VERSION=1.2.3" >> $GITHUB_ENV
- name: Generate documentation
run: |
mkdir -p .github/scripts/docs
bash .github/scripts/docs/generate-and-publish-docs.sh "$BRANCH_TYPE" "$VERSION"
- name: Build Jekyll site
run: |
# Install Jekyll and necessary plugins
gem install bundler jekyll jekyll-relative-links jekyll-remote-theme
# Create Jekyll source directory
mkdir -p site-src
cp -r docs/* site-src/
# Create lowercase index.md (Jekyll requirement)
cat > site-src/index.md << EOF
---
layout: default
title: DXT Documentation
---
$(grep -v "^# DXT documentation" site-src/INDEX.md)
EOF
# Write Jekyll _config.yml with remote theme
cat > site-src/_config.yml << EOF
title: DXT Documentation
description: Documentation for the DEFRA Forms Engine Plugin
markdown: kramdown
kramdown:
input: GFM
syntax_highlighter: rouge
# Use remote GitHub-hosted theme
remote_theme: pages-themes/minimal
plugins:
- jekyll-remote-theme
- jekyll-relative-links
relative_links:
enabled: true
defaults:
- scope:
path: "schemas"
type: "pages"
values:
layout: default
- scope:
path: "features"
type: "pages"
values:
layout: default
- scope:
path: ""
type: "pages"
values:
layout: default
EOF
# Build the site using Jekyll
jekyll build --source site-src --destination _site
# Display final build structure for debugging
echo "Final site structure:"
find _site -type f | grep -v ".git" | grep -e "index.html" -e "assets" | head -n 10
echo "... (and more files)"
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: '_site'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
with:
timeout: 600000 # 10 minutes in milliseconds