Merge pull request #42 from emmo-repo/dev #73
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' | |
pull_request: | |
branches: | |
- '*' # To ensure it runs on all PRs | |
env: | |
GIT_USER_NAME: BattINFO Developers | |
GIT_USER_EMAIL: "BattINFO@big-map.org" | |
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 | |
with: | |
python-version: '3.10' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install Markdown==3.4.3 rdflib==6.3.2 pandoc | |
- 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 | |
sudo mkdir -p docs/_build/html/context/ | |
fi | |
if [ ! -d "docs/_build/html/assets/" ]; then | |
sudo mkdir -p docs/_build/html/assets/ | |
fi | |
if [ ! -d "docs/_build/html/versions/" ]; then | |
sudo mkdir -p docs/_build/html/versions/ | |
fi | |
- name: Copy assets directory to HTML directory | |
run: sudo cp -r docs/assets/* docs/_build/html/assets/ | |
- 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 | |
git diff --staged --quiet || git commit -m "Update context.json file" | |
- name: Pull latest changes | |
if: github.event_name == 'push' # Only pull changes during push events | |
run: git pull origin master --rebase | |
- name: Push changes | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' # Only push during push events on master | |
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" | |
if [ -f "batteryquantities.ttl" ]; then | |
python docs/scripts/apply_foops_recommendations.py batteryquantities.ttl batteryquantities-foops.ttl | |
sudo cp "batteryquantities-foops.ttl" "docs/_build/html/versions/$TAG/batteryquantities.ttl" | |
elif [ -f "shared/battery-quantities.ttl" ]; then | |
python docs/scripts/apply_foops_recommendations.py shared/battery-quantities.ttl quantities-foops.ttl | |
sudo cp "quantities-foops.ttl" "docs/_build/html/versions/$TAG/quantities.ttl" | |
else | |
echo "File not found!" | |
exit 1 | |
fi | |
python docs/scripts/apply_foops_recommendations.py battery.ttl battery-foops.ttl | |
sudo cp "battery-foops.ttl" "docs/_build/html/versions/$TAG/battery.ttl" | |
sudo cp "battery-inferred.ttl" "docs/_build/html/versions/$TAG/" | |
if [ -d "context" ]; then | |
sudo mkdir -p "docs/_build/html/versions/$TAG/context" | |
sudo cp "context/context.json" "docs/_build/html/versions/$TAG/context" | |
fi | |
done | |
- name: Copy TTL files to HTML directory | |
run: | | |
if [ -f "batteryquantities.ttl" ]; then | |
python docs/scripts/apply_foops_recommendations.py batteryquantities.ttl batteryquantities-foops.ttl | |
sudo cp "batteryquantities-foops.ttl" "docs/_build/html/batteryquantities.ttl" | |
elif [ -f "shared/battery-quantities.ttl" ]; then | |
python docs/scripts/apply_foops_recommendations.py shared/battery-quantities.ttl quantities-foops.ttl | |
sudo cp "quantities-foops.ttl" "docs/_build/html/quantities.ttl" | |
else | |
echo "battery quantities file not found!" | |
exit 1 | |
fi | |
python docs/scripts/apply_foops_recommendations.py battery.ttl battery-foops.ttl | |
sudo cp "battery-foops.ttl" "docs/_build/html/battery.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 | |
if: github.ref == 'refs/heads/master' && github.event_name == 'push' # Only deploy during push events on master | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: docs/_build/html |