ci: Update TypeScript CI workflow to select tests if test files change (#4840)
* Update TypeScript CI workflow: streamline suite selection and dependency setup - Set default test suites to an empty array to dynamically determine suites based on changes. - Ensure compact JSON output for test suites. - Simplify Node.js and Playwright setup by using built-in caching and custom actions. - Add UV_CACHE_DIR environment variable for caching. * Expand test coverage paths in changes-filter.yaml configuration
This commit is contained in:
parent
043cf14fba
commit
dd92d9c10c
2 changed files with 27 additions and 7 deletions
18
.github/workflows/typescript_test.yml
vendored
18
.github/workflows/typescript_test.yml
vendored
|
|
@ -81,39 +81,40 @@ jobs:
|
|||
RELEASE="${{ inputs.release || 'false' }}"
|
||||
echo "Release build: $RELEASE"
|
||||
|
||||
if [[ "$RELEASE" == "true" ]]; then
|
||||
# if release OR steps.filter.outputs.frontend-tests is true
|
||||
if [[ "$RELEASE" == "true" || "${{ steps.filter.outputs.frontend-tests }}" == "true" ]]; then
|
||||
SUITES='["release"]'
|
||||
echo "Release build detected - setting suites to: $SUITES"
|
||||
# No grep pattern for release - run all tests
|
||||
TEST_GREP=""
|
||||
else
|
||||
# If input suites were not provided, determine based on changes
|
||||
if [[ "$SUITES" == "[]" ]]; then
|
||||
if [[ "$SUITES" == "[]" ]]; then
|
||||
echo "No input suites provided - determining from changes"
|
||||
TAGS=()
|
||||
# Add suites and tags based on changed files
|
||||
if [[ "${{ steps.filter.outputs.components }}" == "true" ]]; then
|
||||
SUITES=$(echo $SUITES | jq '. += ["components"]')
|
||||
SUITES=$(echo $SUITES | jq -c '. += ["components"]')
|
||||
TAGS+=("@components")
|
||||
echo "Added components suite"
|
||||
fi
|
||||
if [[ "${{ steps.filter.outputs.starter-projects }}" == "true" ]]; then
|
||||
SUITES=$(echo $SUITES | jq '. += ["starter-projects"]')
|
||||
SUITES=$(echo $SUITES | jq -c '. += ["starter-projects"]')
|
||||
TAGS+=("@starter-projects")
|
||||
echo "Added starter-projects suite"
|
||||
fi
|
||||
if [[ "${{ steps.filter.outputs.workspace }}" == "true" ]]; then
|
||||
SUITES=$(echo $SUITES | jq '. += ["workspace"]')
|
||||
SUITES=$(echo $SUITES | jq -c '. += ["workspace"]')
|
||||
TAGS+=("@workspace")
|
||||
echo "Added workspace suite"
|
||||
fi
|
||||
if [[ "${{ steps.filter.outputs.api }}" == "true" ]]; then
|
||||
SUITES=$(echo $SUITES | jq '. += ["api"]')
|
||||
SUITES=$(echo $SUITES | jq -c '. += ["api"]')
|
||||
TAGS+=("@api")
|
||||
echo "Added api suite"
|
||||
fi
|
||||
if [[ "${{ steps.filter.outputs.database }}" == "true" ]]; then
|
||||
SUITES=$(echo $SUITES | jq '. += ["database"]')
|
||||
SUITES=$(echo $SUITES | jq -c '. += ["database"]')
|
||||
TAGS+=("@database")
|
||||
echo "Added database suite"
|
||||
fi
|
||||
|
|
@ -151,6 +152,9 @@ jobs:
|
|||
fi
|
||||
fi
|
||||
|
||||
# Ensure compact JSON output
|
||||
SUITES=$(echo "$SUITES" | jq -c '.')
|
||||
|
||||
echo "Final test suites to run: $SUITES"
|
||||
echo "Test grep pattern: $TEST_GREP"
|
||||
# Ensure proper JSON formatting for matrix output
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue