Skip to content

Feature 534495: Documentation Generation (GH Pages) #6

Feature 534495: Documentation Generation (GH Pages)

Feature 534495: Documentation Generation (GH Pages) #6

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: 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: Prepare Jekyll site
run: |
# Clean and setup output folder
rm -rf _site
mkdir -p _site
# Copy all docs recursively
cp -r docs/* _site/
# Rename main entry point to lowercase (Jekyll requirement)
cp _site/INDEX.md _site/index.md
# Create minimal _config.yml
cat > _site/_config.yml << EOF
title: DEFRA Forms Engine Plugin
description: Documentation for the DEFRA Forms Engine Plugin
markdown: kramdown
theme: minima
EOF
echo "Jekyll site preparation complete!"
- name: List _site contents
run: |
echo "Files in _site:"
find _site -type f | sort
# Check key files
echo "Key files check:"
ls -la _site/index*
ls -la _site/_config.yml || echo "_config.yml not found"
# Peek at the content of the config file
echo "Content of _config.yml:"
cat _site/_config.yml
- 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