Skip to content

Update README.md

Update README.md #308

Workflow file for this run

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: "[email protected]"
jobs:
updatepages:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository (force clean)
uses: actions/checkout@v4
with:
fetch-depth: 0
clean: true
- 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 files
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: Ensure HTML directories exist
run: |
sudo mkdir -p docs/_build/html/context/
sudo mkdir -p docs/_build/html/assets/
sudo mkdir -p docs/_build/html/versions/
- name: Copy assets and context to HTML directory
run: |
sudo cp -r docs/assets/* docs/_build/html/assets/
sudo cp context/context.json docs/_build/html/context/
- name: Commit generated changes (context.json & rst files)
run: |
git config --local user.email "${{ env.GIT_USER_EMAIL }}"
git config --local user.name "${{ env.GIT_USER_NAME }}"
git add context/context.json docs/electrochemistry.rst
git diff --staged --quiet || git commit -m "Update generated docs files"
- name: Debug before pull
run: |
echo "Checking Git status before pull..."
git status
echo "Listing unstaged changes..."
git diff --name-only
echo "Listing untracked files..."
git ls-files --others --exclude-standard
- name: Stash changes before pull
if: github.event_name == 'push'
run: |
git stash --include-untracked
git pull origin master --rebase
git stash pop || echo "No stash to apply"
- 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 process TTL files
run: |
git fetch --tags
git tag | while read TAG; do
sudo mkdir -p "docs/_build/html/versions/$TAG"
TTL_FILES=(
"reference/electrochemistry-quantities.ttl"
"reference/electrochemistry-reference.ttl"
"modules/electrochemistry-manufacturing.ttl"
"modules/electrochemistry-testing.ttl"
"electrochemistry.ttl"
)
for FILE in "${TTL_FILES[@]}"; do
if [ -f "$FILE" ]; then
OUTPUT_FILE="${FILE/.ttl/-foops.ttl}"
python docs/scripts/apply_foops_recommendations.py "$FILE" "$OUTPUT_FILE"
sudo cp "$OUTPUT_FILE" "docs/_build/html/versions/$TAG/$(basename "$FILE")"
else
echo "Warning: $FILE not found!"
fi
done
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: |
TTL_FILES=(
"reference/electrochemistry-quantities.ttl"
"reference/electrochemistry-reference.ttl"
"modules/electrochemistry-manufacturing.ttl"
"modules/electrochemistry-testing.ttl"
"electrochemistry.ttl"
)
for FILE in "${TTL_FILES[@]}"; do
if [ -f "$FILE" ]; then
OUTPUT_FILE="${FILE/.ttl/-foops.ttl}"
python docs/scripts/apply_foops_recommendations.py "$FILE" "$OUTPUT_FILE"
sudo cp "$OUTPUT_FILE" "docs/_build/html/$(basename "$FILE")"
else
echo "Warning: $FILE not found!"
fi
done
- 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