Refactor CI workflows to use reusable test configuration #494
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
This PR refactors the GitHub Actions workflows to improve maintainability and organization. It addresses the duplicated test logic across multiple workflows by introducing a reusable workflow.
Approach
The core of this change is the extraction of the test execution logic into a new, reusable workflow file (
run_tests.yml). The existingdev.yml,release.yml, andstaging.ymlworkflows are then updated tousethis new reusable workflow. A newdependabot.ymlfile has also been added to automate dependency updates for pip packages.Key Modifications
run_tests.yml: A new reusable workflow that encapsulates the common testing steps, including environment setup, dependency installation, and test execution.dev.yml,release.yml, andstaging.ymlhave been modified to use therun_tests.ymlworkflow, reducing code duplication.dependabot.yml: This file configures Dependabot to automatically create pull requests for pip dependency updates on a weekly basis, targeting thedevbranch.Important Technical Details
run_tests.ymlworkflow inherits secrets from the calling workflow, ensuring that sensitive information like AWS credentials and API keys are still securely provided.pippackages and label them accordingly.Types of changes