Skip to content

Simplify Python CI workflow including parallel coverage report upload to Codecov and Codacy #312

@nanotaboada

Description

@nanotaboada

Description

We need to improve the current Python CI workflow by implementing parallel coverage report uploads to Codecov and Codacy, as well as refactoring the workflow to separate linting, testing, and coverage steps into distinct jobs.

  1. Implement Parallel Coverage Report Upload to Codecov and Codacy

    • After running the tests and generating coverage reports, upload the coverage results to both Codecov and Codacy.
    • Ensure the coverage upload to each platform happens in parallel to speed up the process and avoid unnecessary delays.
  2. Separate Linting, Testing, and Coverage Jobs

    • Refactor the CI workflow into separate jobs:
      • Lint Job: Run linting checks (e.g., flake8, pycodestyle, etc.).
      • Test Job: Run the test suite (e.g., pytest).
      • Coverage Job: Run the coverage report generation and upload to Codecov and Codacy.
  3. Ensure Efficient Job Dependencies

    • Ensure the jobs run in parallel, except for jobs that depend on others (e.g., the Coverage job should depend on the Test job being successful).
  4. Update CI Configuration

    • Modify the python-app.yml GitHub Actions workflow file to include these changes.
  5. Test the Updated Workflow

    • Verify the new CI pipeline is correctly running linting, testing, and coverage reporting in parallel.
    • Ensure that reports are successfully uploaded to Codecov and Codacy.

Acceptance Criteria

  • The Python CI workflow is refactored to have distinct jobs for linting, testing, and coverage.
  • Coverage reports are uploaded in parallel to both Codecov and Codacy after tests run.
  • The workflow file is updated to reflect the changes, and all jobs run correctly.
  • The CI pipeline successfully completes without errors for each step.

Reference

https://github.com/nanotaboada/ts-node-samples-express-restful/blob/master/.github/workflows/node.js.yml

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions