fix: complete semantic-release workflow with yq-free build process (#… #336
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test Matrix | |
| on: | |
| schedule: | |
| # Run nightly comprehensive testing at 2 AM UTC | |
| - cron: '0 2 * * *' | |
| workflow_dispatch: | |
| # Allow manual triggering | |
| push: | |
| branches: [main] | |
| tags: ['v*'] | |
| # Only run on main branch and releases for comprehensive testing | |
| env: | |
| AWS_DEFAULT_REGION: us-east-1 | |
| AWS_ACCESS_KEY_ID: testing | |
| AWS_SECRET_ACCESS_KEY: testing | |
| ENVIRONMENT: testing | |
| TESTING: true | |
| jobs: | |
| get-config: | |
| name: Get Configuration | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| outputs: | |
| python-versions: ${{ steps.config.outputs.python-versions }} | |
| default-python-version: ${{ steps.config.outputs.default-python-version }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6.0.1 | |
| - name: Get project configuration | |
| id: config | |
| uses: ./.github/actions/get-config | |
| unit-tests: | |
| name: Unit Tests | |
| needs: get-config | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest] # Disabled windows-latest, macos-latest for now | |
| # Dynamic matrix from config with static fallback for act/dry-run | |
| # Update static list when adding new Python versions (currently 3.10-3.14) | |
| python-version: ${{ fromJSON(needs.get-config.outputs.python-versions || '["3.10", "3.11", "3.12", "3.13", "3.14"]') }} | |
| uses: ./.github/workflows/reusable-test.yml | |
| with: | |
| test-type: unit | |
| python-version: ${{ matrix.python-version }} | |
| os: ${{ matrix.os }} | |
| default-python-version: ${{ needs.get-config.outputs.default-python-version }} | |
| continue-on-error: true # TODO: Remove once tests are stable | |
| integration-tests: | |
| name: Integration Tests | |
| needs: [get-config, unit-tests] | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest] # Disabled windows-latest, macos-latest for now | |
| # Dynamic matrix from config with static fallback for act/dry-run | |
| # Update static list when adding new Python versions (currently 3.10-3.14) | |
| python-version: ${{ fromJSON(needs.get-config.outputs.python-versions || '["3.10", "3.11", "3.12", "3.13", "3.14"]') }} | |
| uses: ./.github/workflows/reusable-test.yml | |
| with: | |
| test-type: integration | |
| python-version: ${{ matrix.python-version }} | |
| os: ${{ matrix.os }} | |
| default-python-version: ${{ needs.get-config.outputs.default-python-version }} | |
| continue-on-error: true # TODO: Remove once tests are stable | |
| e2e-tests: | |
| name: End-to-End Tests | |
| needs: [get-config, unit-tests, integration-tests] | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest] # Disabled windows-latest, macos-latest for now | |
| # Dynamic matrix from config with static fallback for act/dry-run | |
| # Update static list when adding new Python versions (currently 3.10-3.14) | |
| python-version: ${{ fromJSON(needs.get-config.outputs.python-versions || '["3.10", "3.11", "3.12", "3.13", "3.14"]') }} | |
| uses: ./.github/workflows/reusable-test.yml | |
| with: | |
| test-type: e2e | |
| python-version: ${{ matrix.python-version }} | |
| os: ${{ matrix.os }} | |
| default-python-version: ${{ needs.get-config.outputs.default-python-version }} | |
| continue-on-error: true # TODO: Remove once tests are stable | |
| test-summary: | |
| name: Test Summary | |
| runs-on: ubuntu-latest | |
| needs: [unit-tests, integration-tests, e2e-tests] | |
| if: always() | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Download all test results | |
| uses: actions/download-artifact@v7.0.0 | |
| with: | |
| path: test-results/ | |
| - name: Display test summary | |
| run: | | |
| # Count test result files | |
| UNIT_RESULTS=$(find test-results/ -name "*unit.xml" | wc -l) | |
| INTEGRATION_RESULTS=$(find test-results/ -name "*integration.xml" | wc -l) | |
| { | |
| echo "## Test Matrix Results" | |
| echo "" | |
| echo "- Unit test configurations: $UNIT_RESULTS" | |
| echo "- Integration test configurations: $INTEGRATION_RESULTS" | |
| echo "" | |
| echo "### Test Result Files:" | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| find test-results/ -name "*.xml" | sort >> "$GITHUB_STEP_SUMMARY" |