-
-
Notifications
You must be signed in to change notification settings - Fork 289
310 lines (276 loc) · 10.9 KB
/
Copy pathdoxygen.yml
File metadata and controls
310 lines (276 loc) · 10.9 KB
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
name: Generate Documentation
on:
# push:
# branches: [ master, main ]
# paths:
# - 'src/**'
# - 'extras/**'
# - '.github/workflows/doxygen.yml'
# pull_request:
# branches: [ master, main ]
# paths:
# - 'src/**'
# - 'extras/**'
# - '.github/workflows/doxygen.yml'
workflow_dispatch:
jobs:
documentation:
name: Generate Doxygen Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Doxygen
run: |
sudo apt-get update
sudo apt-get install -y doxygen graphviz
- name: Verify Doxygen installation
run: |
doxygen --version
dot -V
- name: Create Doxyfile configuration
run: |
cat > Doxyfile << 'EOF'
# Doxyfile for TaskScheduler Library
# Project information
PROJECT_NAME = "TaskScheduler"
PROJECT_NUMBER = "v4.0.0"
PROJECT_BRIEF = "Cooperative multitasking for Arduino and ESP platforms"
PROJECT_LOGO =
# Output configuration
OUTPUT_DIRECTORY = ./doc
CREATE_SUBDIRS = YES
ALLOW_UNICODE_NAMES = NO
# Build configuration
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_PRIV_VIRTUAL = YES
EXTRACT_PACKAGE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = YES
# Input configuration
INPUT = ./src
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.h *.hpp *.cpp *.c
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS =
# Source browsing
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
# Alphabetical class index
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
# HTML output
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
HTML_DYNAMIC_MENUS = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
GENERATE_HTMLHELP = NO
GENERATE_QHP = NO
GENERATE_ECLIPSEHELP = NO
DISABLE_INDEX = NO
GENERATE_TREEVIEW = YES
ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
# LaTeX output (disabled)
GENERATE_LATEX = NO
# RTF output (disabled)
GENERATE_RTF = NO
# Man page output (disabled)
GENERATE_MAN = NO
# XML output (disabled)
GENERATE_XML = NO
# DOCBOOK output (disabled)
GENERATE_DOCBOOK = NO
# AutoGen output (disabled)
GENERATE_AUTOGEN_DEF = NO
# Perl module output (disabled)
GENERATE_PERLMOD = NO
# Preprocessor configuration
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH = ./src
INCLUDE_FILE_PATTERNS =
PREDEFINED = ARDUINO=300 \
__TASK_INLINE=inline \
_TASK_SLEEP_ON_IDLE_RUN \
_TASK_STATUS_REQUEST \
_TASK_WDT_IDS \
_TASK_LTS_POINTER \
_TASK_PRIORITY \
_TASK_WDT_IDS \
_TASK_TIMECRITICAL \
_TASK_SCHEDULING_OPTIONS \
_TASK_TIMEOUT \
_TASK_OO_CALLBACKS \
_TASK_DEBUG \
_TASK_SELF_DESTRUCT \
_TASK_STD_FUNCTION \
_TASK_THREAD_SAFE \
_TASK_EXPOSE_CHAIN
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
# External references
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
# Dot tool configuration
CLASS_DIAGRAMS = YES
MSCGEN_PATH =
DIA_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
DOT_NUM_THREADS = 0
DOT_FONTNAME = Helvetica
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH =
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_CFG_FILE =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
# Configuration options related to warning and progress messages
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
EOF
- name: Run Doxygen
run: |
echo "=== Running Doxygen Documentation Generation ==="
doxygen Doxyfile
- name: Add .nojekyll file
run: touch ./doc/html/.nojekyll
- name: Verify documentation generation
run: |
echo "=== Verifying Generated Documentation ==="
if [ -d "./doc/html" ]; then
echo "✓ HTML documentation generated successfully"
echo "Documentation files:"
ls -la ./doc/html/ | head -10
echo "..."
echo "Total files: $(find ./doc/html -type f | wc -l)"
# Check for main files
if [ -f "./doc/html/index.html" ]; then
echo "✓ Main index.html found"
else
echo "✗ Main index.html not found"
exit 1
fi
if [ -f "./doc/html/annotated.html" ]; then
echo "✓ Class list found"
else
echo "✗ Class list not found"
fi
# Check documentation size
doc_size=$(du -sh ./doc/html | cut -f1)
echo "Documentation size: $doc_size"
else
echo "✗ Documentation generation failed - no output directory found"
exit 1
fi
- name: Upload documentation artifacts
uses: actions/upload-artifact@v4
with:
name: doxygen-documentation
path: ./doc/
retention-days: 30
- name: Deploy to GitHub Pages
if: github.ref == 'refs/heads/master'
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.DEPLOY_KEY }}
external_repository: arkhipenko/arkhipenko.github.io
publish_dir: ./doc/html
destination_dir: ts
publish_branch: gh-pages
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
commit_message: 'Update TaskScheduler documentation'
- name: Create documentation summary
run: |
echo "=== Documentation Generation Summary ===" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Documentation successfully generated!**" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "- 📁 Output directory: \`./doc/html/\`" >> $GITHUB_STEP_SUMMARY
echo "- 📄 Main entry point: \`./doc/html/index.html\`" >> $GITHUB_STEP_SUMMARY
echo "- 📊 Total files: $(find ./doc/html -type f | wc -l)" >> $GITHUB_STEP_SUMMARY
echo "- 💾 Documentation size: $(du -sh ./doc/html | cut -f1)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [ "${{ github.event_name }}" = "push" ] && [ "${{ github.ref }}" = "refs/heads/master" ]; then
echo "- 🚀 **Deployed to:** https://arkhipenko.github.io/TaskScheduler/" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
fi
echo "**Key Documentation Pages:**" >> $GITHUB_STEP_SUMMARY
echo "- 📋 [Class Index](./doc/html/annotated.html)" >> $GITHUB_STEP_SUMMARY
echo "- 📁 [File Index](./doc/html/files.html)" >> $GITHUB_STEP_SUMMARY
echo "- 🔍 [Search](./doc/html/search.html)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "*Documentation artifacts have been uploaded and are available for download.*" >> $GITHUB_STEP_SUMMARY