The map legend counted the wrong thing, and members used the wrong threshold #391
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |
| # fastapi + httpx back the TestClient integration tests (tests/test_api_contract.py). | |
| # Without them that file skips itself rather than failing, but then CI silently stops | |
| # checking every endpoint contract β so install them explicitly. | |
| - name: Install test-only deps | |
| run: pip install fastapi httpx pydantic | |
| - name: Pytest (unit + integration) | |
| run: | | |
| if git ls-files '*test_*.py' '*_test.py' 'tests/**/*.py' | grep -qv '^tests/e2e/'; then | |
| pytest -q --ignore=tests/e2e | |
| else | |
| echo "No Python unit tests yet β skipping." | |
| fi | |
| e2e: | |
| name: E2E β smoke (headless UI) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install deps + browser | |
| run: | | |
| pip install -r requirements.txt | |
| pip install pytest playwright | |
| python -m playwright install --with-deps chromium | |
| - name: Start the app (model-less β smoke tests don't need trained models) | |
| working-directory: training | |
| run: | | |
| nohup python -m uvicorn app:app --host 127.0.0.1 --port 8010 > /tmp/flavor-app.log 2>&1 & | |
| for i in $(seq 1 40); do | |
| curl -sf http://127.0.0.1:8010/api/studio_terms >/dev/null && { echo "app up"; break; } | |
| sleep 1 | |
| done | |
| - name: Smoke e2e | |
| env: | |
| FLAVORMANCER_URL: http://127.0.0.1:8010 | |
| run: pytest tests/e2e -q -m smoke | |
| - name: App log on failure | |
| if: failure() | |
| run: tail -50 /tmp/flavor-app.log || true | |
| 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 |