Skip to content

Release/v3.0.2

Release/v3.0.2 #146

Workflow file for this run

name: Deploy Documentation to GitHub Pages
on:
push:
branches: [ main ]
paths:
- 'docs/**'
- '.github/workflows/docs.yml'
pull_request:
branches: [ main ]
paths:
- 'docs/**'
- '.github/workflows/docs.yml'
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
check-changes:
runs-on: ubuntu-latest
outputs:
docs-changed: ${{ steps.changes.outputs.docs }}
is-release: ${{ steps.changes.outputs.release }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check for changes
id: changes
run: |
# Check if this is a release commit
if [[ "${{ github.event.head_commit.message }}" == *"[release]"* ]]; then
echo "release=true" >> $GITHUB_OUTPUT
echo "docs=true" >> $GITHUB_OUTPUT
echo "πŸš€ Release commit detected - will deploy docs"
else
# Check if docs files changed
if git diff --name-only HEAD~1 HEAD | grep -E '^docs/' > /dev/null; then
echo "docs=true" >> $GITHUB_OUTPUT
echo "πŸ“š Docs changes detected - will deploy docs"
else
echo "docs=false" >> $GITHUB_OUTPUT
echo "πŸ“ No docs changes - skipping deployment"
fi
echo "release=false" >> $GITHUB_OUTPUT
fi
build:
runs-on: ubuntu-latest
needs: check-changes
if: needs.check-changes.outputs.docs-changed == 'true'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.2'
bundler-cache: true
- name: Debug Ruby Environment
run: |
echo "Ruby version: $(ruby --version)"
echo "Gem version: $(gem --version)"
echo "Bundler version: $(bundle --version)"
echo "Current directory: $(pwd)"
ls -la
- name: Install Jekyll
run: |
gem install jekyll bundler
- name: Navigate to docs
run: |
cd docs
pwd
ls -la
- name: Install dependencies with verbose output
run: |
cd docs
bundle install --verbose
- name: Build documentation
run: |
cd docs
bundle exec jekyll build --verbose
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/_site
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: [check-changes, build]
if: github.ref == 'refs/heads/main' && needs.check-changes.outputs.docs-changed == 'true'
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4