Skip to content

docs+ui: cite every source in use; surface behavior & safety in the d… #73

docs+ui: cite every source in use; surface behavior & safety in the d…

docs+ui: cite every source in use; surface behavior & safety in the d… #73

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
jobs:
python:
name: Python β€” lint & test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install tooling
run: pip install ruff pytest
- name: Ruff lint
run: ruff check .
- name: Install runtime deps
run: pip install -r requirements.txt
- name: Pytest
run: |
if git ls-files '*test_*.py' '*_test.py' 'tests/**/*.py' | grep -q .; then
pytest -q
else
echo "No Python tests yet β€” skipping."
fi
dotnet:
name: .NET β€” build & test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.0.x"
- name: Build & test
run: |
target=$(git ls-files '*.sln' | head -1)
[ -z "$target" ] && target=$(git ls-files '*.csproj' | head -1)
if [ -n "$target" ]; then
echo "Building $target"
dotnet build "$target" --configuration Release
if git ls-files '*Test*.csproj' | grep -q .; then
dotnet test --configuration Release
else
echo "No .NET test projects yet β€” build only."
fi
else
echo "No .NET projects yet β€” skipping."
fi
dco:
name: DCO β€” commit sign-off
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Verify every commit carries a Signed-off-by
run: |
base='${{ github.event.pull_request.base.sha }}'
head='${{ github.event.pull_request.head.sha }}'
fail=0
for c in $(git rev-list --no-merges "$base".."$head"); do
if ! git show -s --format=%B "$c" | grep -qiE '^Signed-off-by: .+ <.+@.+>'; then
echo "::error::commit ${c:0:8} has no 'Signed-off-by' line β€” sign off (DCO + CLA): git commit -s --amend (or: git rebase --signoff $base)"
fail=1
fi
done
if [ "$fail" = 0 ]; then echo "All commits signed off βœ“"; else exit 1; fi