Skip to content

Commit 4d0698e

Browse files
committed
ci: add documentation validation to test workflow
Add validate-docs job to GitHub Actions workflow: - Runs documentation coverage and tag validation - Executes before test job (dependency) - Uses mise run docs:validate Also update README.md with Documentation section explaining: - How to install Doxygen - How to generate documentation (mise run docs:generate) - Documentation standards overview Source: phase-4-doxygen (commits 1264b71, 5e37aca)
1 parent 91aba3e commit 4d0698e

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed

.github/workflows/test-eql.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,27 @@ defaults:
2626
shell: bash -l {0}
2727

2828
jobs:
29+
validate-docs:
30+
name: "Validate SQL Documentation"
31+
runs-on: ubuntu-latest-m
32+
33+
steps:
34+
- uses: actions/checkout@v4
35+
36+
- uses: jdx/mise-action@v2
37+
with:
38+
version: 2025.1.6
39+
install: true
40+
cache: true
41+
42+
- name: Validate SQL documentation
43+
run: |
44+
mise run docs:validate
45+
2946
test:
3047
name: "Test EQL SQL components"
3148
runs-on: ubuntu-latest-m
49+
needs: validate-docs
3250

3351
strategy:
3452
fail-fast: false

README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Store encrypted data alongside your existing data:
2222
- [Getting started](#getting-started)
2323
- [Enable encrypted columns](#enable-encrypted-columns)
2424
- [Encrypt configuration](#encrypt-configuration)
25+
- [Documentation](#documentation)
2526
- [CipherStash integrations using EQL](#cipherstash-integrations-using-eql)
2627
- [Versioning](#versioning)
2728
- [Upgrading](#upgrading)
@@ -204,6 +205,64 @@ In order to enable searchable encryption, you will need to configure your Cipher
204205
- If you are using [CipherStash Proxy](https://github.com/cipherstash/proxy), see [this guide](docs/tutorials/proxy-configuration.md).
205206
- If you are using [Protect.js](https://github.com/cipherstash/protectjs), use the [Protect.js schema](https://github.com/cipherstash/protectjs/blob/main/docs/reference/schema.md).
206207

208+
## Documentation
209+
210+
### API Documentation
211+
212+
All EQL functions and types are fully documented with Doxygen-style comments in the source code.
213+
214+
**Install Doxygen** (required for documentation generation):
215+
216+
```bash
217+
# macOS
218+
brew install doxygen
219+
220+
# Ubuntu/Debian
221+
apt-get install doxygen
222+
223+
# Other platforms: https://www.doxygen.nl/download.html
224+
```
225+
226+
**Generate API documentation:**
227+
228+
```bash
229+
# Using mise
230+
mise run docs:generate
231+
232+
# Or directly with doxygen
233+
doxygen Doxyfile
234+
```
235+
236+
The generated HTML documentation will be available at `docs/api/html/index.html`.
237+
238+
### Documentation Standards
239+
240+
All SQL functions, types, and operators include:
241+
- **@brief** - Short description of purpose
242+
- **@param** - Parameter descriptions with types
243+
- **@return** - Return value description and type
244+
- **@example** - Usage examples
245+
- **@throws** - Exception conditions
246+
- **@note** - Important notes and caveats
247+
248+
For contribution guidelines, see [CLAUDE.md](./CLAUDE.md).
249+
250+
### Validation Tools
251+
252+
Verify documentation quality using these scripts:
253+
254+
```bash
255+
# Using mise (validates coverage and tags)
256+
mise run docs:validate
257+
258+
# Or run individual checks
259+
./tasks/check-doc-coverage.sh # Check 100% coverage
260+
./tasks/validate-required-tags.sh # Validate @brief, @param, @return
261+
./tasks/validate-documented-sql.sh # Validate SQL syntax
262+
```
263+
264+
Documentation validation runs automatically in CI for all pull requests.
265+
207266
## CipherStash integrations using EQL
208267

209268
These frameworks use EQL to enable searchable encryption functionality in PostgreSQL.

0 commit comments

Comments
 (0)