Skip to content

TrackD BYOD: add gnucash_gl adapter v1 #979

TrackD BYOD: add gnucash_gl adapter v1

TrackD BYOD: add gnucash_gl adapter v1 #979

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
branches: [ main, dev, chore/**, docs/**, feat/** ]
pull_request:
branches: [ main ]
jobs:
docs-strict:
name: docs-strict
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies (docs)
run: |
python -m pip install -U pip
python -m pip install -r requirements.txt -r requirements-dev.txt
python -m pip install -e .
- name: Build docs (workbook strict)
run: make docs-workbook-strict
wheel-smoke:
name: wheel-smoke (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Build wheel
run: |
python -m pip install -U pip
python -m pip install build
python -m build --wheel
- name: Install wheel + smoke test (posix)
if: runner.os != 'Windows'
run: |
python -m venv /tmp/wheeltest
source /tmp/wheeltest/bin/activate
python -m pip install -U pip
python -m pip install dist/*.whl
python -m pip install pytest
python -c "from importlib import resources; p = resources.files('pystatsv1.assets') / 'workbook_starter.zip'; assert p.is_file(), p"
pystatsv1 workbook init --dest /tmp/wb_smoke
test -f /tmp/wb_smoke/Makefile
test -f /tmp/wb_smoke/scripts/psych_ch10_problem_set.py
pystatsv1 workbook run ch10 --workdir /tmp/wb_smoke
pystatsv1 workbook check ch10 --workdir /tmp/wb_smoke
- name: Install wheel + smoke test (windows)
if: runner.os == 'Windows'
shell: pwsh
run: |
python -m venv wheeltest
.\wheeltest\Scripts\python -m pip install -U pip
$wheel = Get-ChildItem dist\*.whl | Select-Object -First 1
.\wheeltest\Scripts\python -m pip install $wheel.FullName
.\wheeltest\Scripts\python -m pip install pytest
.\wheeltest\Scripts\python -c "from importlib import resources; p = resources.files('pystatsv1.assets') / 'workbook_starter.zip'; assert p.is_file(), p"
.\wheeltest\Scripts\pystatsv1.exe workbook init --dest wb_smoke
if (!(Test-Path wb_smoke\Makefile)) { throw 'Missing Makefile' }
if (!(Test-Path wb_smoke\scripts\psych_ch10_problem_set.py)) { throw 'Missing script psych_ch10_problem_set.py' }
.\wheeltest\Scripts\pystatsv1.exe workbook run ch10 --workdir wb_smoke
.\wheeltest\Scripts\pystatsv1.exe workbook check ch10 --workdir wb_smoke
windows-py310:
runs-on: windows-latest
timeout-minutes: 20
env:
PYTHONIOENCODING: utf-8
defaults:
run:
shell: pwsh
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
cache: pip
- name: Install make (Chocolatey)
run: choco install make -y
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if (Test-Path requirements.txt) { pip install -r requirements.txt } else { pip install numpy pandas statsmodels matplotlib scipy }
if (Test-Path requirements-dev.txt) { pip install -r requirements-dev.txt } else { pip install ruff pytest }
pip install -e .
- name: Lint
run: make lint
- name: Build docs
run: make docs
- name: Tests
run: make test
- name: Tiny Chapter 13 smoke
run: make ch13-ci
- name: Upload artifacts (plots & data)
if: always()
uses: actions/upload-artifact@v4
with:
name: ch13-artifacts
if-no-files-found: ignore
path: |
data/synthetic/**
outputs/**