Feature 534495: Documentation Generation (GH Pages) #6
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |