-
Notifications
You must be signed in to change notification settings - Fork 0
138 lines (112 loc) · 4.78 KB
/
doc.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
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
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