Merge pull request #39 from emmo-repo/dev #64
This file contains 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: "docs" | |
on: | |
push: | |
branches: | |
- 'master' | |
env: | |
GIT_USER_NAME: BattINFO Developers | |
GIT_USER_EMAIL: "[email protected]" | |
jobs: | |
updatepages: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 #Uses python install action from here: https://github.com/marketplace?type=actions | |
with: | |
python-version: '3.10' # Replace with the desired Python version | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install Markdown==3.4.3 rdflib==6.3.2 # Add any other dependencies if needed | |
- name: Render documentation from ttl | |
run: python docs/scripts/ttl_to_rst.py | |
- name: Build HTML | |
uses: ammaraskar/sphinx-action@master | |
with: | |
docs-folder: "docs/" | |
pre-build-command: "apt-get update -y; apt-get install -y pandoc" | |
- name: Create context file from ttl | |
run: python docs/scripts/ttl_to_context.py | |
- name: Check if HTML context directory exists | |
run: | | |
if [ ! -d "docs/_build/html/context/" ]; then | |
echo "Creating HTML context directory" | |
sudo mkdir -p docs/_build/html/context/ | |
else | |
echo "HTML context directory already exists" | |
fi | |
if [ ! -d "docs/_build/html/versions/" ]; then | |
echo "Creating HTML versions directory" | |
sudo mkdir -p docs/_build/html/versions/ | |
else | |
echo "HTML versions directory already exists" | |
fi | |
- name: Copy context file to HTML directory | |
run: sudo cp context/context.json docs/_build/html/context/ | |
- name: Commit changes | |
run: | | |
git config --local user.email "${{ env.GIT_USER_EMAIL }}" | |
git config --local user.name "${{ env.GIT_USER_NAME }}" | |
git add context/context.json | |
# Check for any changes to commit | |
git diff --staged --quiet || git commit -m "Update context.json file" | |
- name: Push changes | |
run: git push origin HEAD:master | |
- name: Fetch all tags and create version directories | |
run: | | |
git fetch --tags | |
git tag | while read TAG; do | |
sudo mkdir -p "docs/_build/html/versions/$TAG" | |
python docs/scripts/apply_foops_recommendations.py battery.ttl battery-foops.ttl | |
python docs/scripts/apply_foops_recommendations.py batteryquantities.ttl batteryquantities-foops.ttl | |
sudo cp "battery-foops.ttl" "docs/_build/html/versions/$TAG/" | |
sudo cp "batteryquantities-foops.ttl" "docs/_build/html/versions/$TAG/" | |
sudo cp "battery-inferred.ttl" "docs/_build/html/versions/$TAG/" | |
if [ -d "context" ]; then | |
echo "Context directory exists, copying context.json to $TAG" | |
# Make sure the context directory exists in the version-specific directory | |
sudo mkdir -p "docs/_build/html/versions/$TAG/context" | |
# Copy context.json to the tag-specific context directory | |
sudo cp "context/context.json" "docs/_build/html/versions/$TAG/context" | |
else | |
echo "No context directory found in the source directory." | |
fi | |
done | |
- name: Copy TTL files to HTML directory | |
run: | | |
python docs/scripts/apply_foops_recommendations.py battery.ttl battery-foops.ttl | |
python docs/scripts/apply_foops_recommendations.py batteryquantities.ttl batteryquantities-foops.ttl | |
sudo cp "battery-foops.ttl" "docs/_build/html/battery.ttl" | |
sudo cp "batteryquantities-foops.ttl" "docs/_build/html/batteryquantities.ttl" | |
sudo cp "battery-inferred.ttl" "docs/_build/html/battery-inferred.ttl" | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: documentationHTML | |
path: docs/_build/html/ | |
- name: Deploy | |
uses: peaceiris/actions-gh-pages@v3 | |
if: github.ref == 'refs/heads/master' | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: docs/_build/html | |