Add versioning strategy and CI/CD pipeline
Some checks failed
CI / Lint (push) Failing after 2m51s
CI / Type Check (push) Failing after 32s
CI / Test (push) Failing after 37s
CI / Release (push) Has been skipped

- Add semantic versioning section to development plan
- Map sprint milestones to version tags
- Create Gitea Actions CI workflow (lint, typecheck, test, release)
- Add CHANGELOG.md following Keep a Changelog format
This commit is contained in:
2025-12-01 23:42:41 +00:00
parent afb5bd2075
commit b164252a92
3 changed files with 223 additions and 9 deletions

97
.gitea/workflows/ci.yaml Normal file
View File

@@ -0,0 +1,97 @@
name: CI
on:
push:
branches: [master, main]
tags: ['v*']
pull_request:
branches: [master, main]
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install ruff
- name: Run Ruff
run: ruff check src/ tests/
typecheck:
name: Type Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Run mypy
run: mypy src/
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Run pytest
run: pytest --cov=src/py_dvt_ate --cov-report=xml
- name: Check coverage
run: |
coverage report --fail-under=80 || echo "Coverage below 80% - will enforce after MVP"
release:
name: Release
needs: [lint, typecheck, test]
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install build tools
run: |
python -m pip install --upgrade pip
pip install build
- name: Build package
run: python -m build
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: dist/*
generate_release_notes: true