8000 Add integration tests and CI workflow by shoebham · Pull Request #24 · shoebham/text_to_isl · GitHub
[go: up one dir, main page]

Skip to content
  • Add integration tests and CI workflow - #24

    Open
    shoebham wants to merge 5 commits into
    mainfrom
    add-integration-tests
    Open

    shoebham wants to merge 5 commits into
    mainfrom
    add-integration-tests

    Conversation

    @shoebham
    Copy link
    Copy Markdown
    Owner

    Summary

    • Adds an integration test suite (tests/integration/test_app_running.py) that verifies required app files exist, starts the Flask server, and submits sample text (Hello world) to confirm sign-word output.
    • Adds GitHub Actions workflow (.github/workflows/integration-tests.yml) that sets up Java/Python/spaCy/torch, downloads Stanza models, fetches the Stanford parser at CI runtime (no longer committed on main), and runs the IT suite.
    • Small compatibility tweaks: configurable PORT, optional IT_LIGHT_PIPELINE for lighter CI stanza loading (default app behavior unchanged), torch>=2.0,<2.6 for stanza/PyTorch compatibility, Dockerfile/spacy pin for Python 3.9.

    Why

    NLP/model changes should not silently break the running application. This CI gate fails the build if the app cannot start or process text.

    Test plan

    • Local IT pass: PORT=5055 IT_LIGHT_PIPELINE=1 python tests/integration/test_app_running.py
    • GitHub Actions green on add-integration-tests (post-main merge, with runtime Stanford parser download)
    • Confirm workflow runs on this PR and stays green
    • Smoke-check normal app run without IT_LIGHT_PIPELINE (default full pipeline unchanged)

    shoebham added 5 commits June 24, 2026 11:57
    Add an IT suite that verifies required app files exist, starts the Flask
    server, and submits sample text to confirm sign-word output. Wire it into
    GitHub Actions with Java/Python/spaCy/torch setup so NLP model changes
    cannot silently break the running application. Support configurable PORT
    for CI/local port conflicts and pin torch/spaCy for Python 3.9 compatibility.
    Use an optional IT_LIGHT_PIPELINE mode so CI only loads tokenize/pos/lemma
    instead of the full heavy default stanza stack. Pre-download models in a
    dedicated workflow step and stream server logs on failure for debugging.
    Drain Flask/server logs on a background thread so verbose NLP print
    output during POST cannot fill the subprocess pipe and hang the server.
    main removed the committed LFS jar; download and extract the parser in
    the workflow instead, and stop requiring it as a tracked repo file.
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Labels

    None yet

    Projects

    None yet

    Development

    Successfully merging this pull request may close these issues.

    1 participant

    0