Skip to content

Improve PR CI workflow: readability, caching, and validation #818

Description

@akshajtiwari

Abstract

The current PR CI workflow (pr-check-tests.yml) is functionally correct but has several readability, maintainability, and minor performance concerns identified during review. Addressing these issues will improve long-term maintainability, reviewer clarity, and CI efficiency without changing the core behavior of the pipeline.

This issue proposes a targeted cleanup and enhancement of the existing workflow while preserving the original directory structure and intent.


Proposed Improvements

  • Standardize section comment indentation and placement for better readability
  • Remove redundant installation of ruff and black (already managed by pre-commit)
  • Use working-directory consistently to improve clarity and reduce shell state reliance
  • Simplify Python setup by removing the single-version matrix configuration
  • Clarify PyInstaller’s role as a build-validation step, not an artifact delivery mechanism
  • Add basic artifact existence checks after PyInstaller builds
  • Extend pip caching to cover both the backend and sync microservice dependencies
  • Add backend coverage reporting using pytest-cov

These changes do not alter the logical flow of the workflow and keep directory usage exactly as in the original design.


Expected Outcome

  • Cleaner, more readable CI workflow
  • Faster CI execution through improved caching
  • Clearer intent behind build-related steps
  • Better visibility into backend test health via coverage reporting
  • Easier future extensions (e.g., additional Python versions, artifact uploads)

Scope

  • File affected: .github/workflows/pr-check-tests.yml
  • No changes to application logic or test behavior
  • CI-only improvement

--

Pull Requests

I have made some changes and put up a Pull request for the same in #672 , commit akshajtiwari/PictoPy@d631a0e

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions