[DO NOT MERGE] Optimize CI pipeline with artifact sharing and enhanced caching #22
Workflow file for this run
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: CI Coordinator | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| types: [opened, reopened, synchronize, labeled] | |
| workflow_dispatch: | |
| schedule: | |
| # Three times a day for integration tests | |
| - cron: '33 3,10,15 * * *' | |
| permissions: | |
| contents: read | |
| env: | |
| RUST_CHANNEL: '1.89.0' | |
| jobs: | |
| # Matrix-based Rust builds and tests | |
| rust_tests: | |
| name: Rust Tests (${{ matrix.platform.name }}) | |
| strategy: | |
| matrix: | |
| platform: | |
| - name: Ubuntu | |
| target: x86_64 | |
| runner: ubuntu-latest | |
| include_docker: true | |
| - name: macOS ARM | |
| target: aarch64 | |
| runner: macos-14 | |
| include_docker: false | |
| - name: Windows | |
| target: x86_64 | |
| runner: windows-latest | |
| include_docker: false | |
| uses: ./.github/workflows/rust-testing-safe.yaml | |
| with: | |
| target: ${{ matrix.platform.target }} | |
| runner: ${{ matrix.platform.runner }} | |
| include_docker_tests: ${{ matrix.platform.include_docker }} | |
| rust_channel: '1.89.0' | |
| # Matrix-based Python tests with sccache | |
| python_tests: | |
| name: Python Tests (${{ matrix.platform.name }}) | |
| strategy: | |
| matrix: | |
| platform: | |
| - name: Ubuntu | |
| target: x86_64 | |
| runner: ubuntu-latest | |
| - name: macOS ARM | |
| target: aarch64 | |
| runner: macos-14 | |
| - name: Windows | |
| target: x86_64 | |
| runner: windows-latest | |
| uses: ./.github/workflows/python-testing.yaml | |
| with: | |
| rust_channel: '1.89.0' | |
| target: ${{ matrix.platform.target }} | |
| runner: ${{ matrix.platform.runner }} | |
| # Integration tests with cloud credentials | |
| test_integration: | |
| name: Test Integration | |
| if: ${{ | |
| github.event_name == 'schedule' | |
| || github.event_name == 'workflow_dispatch' | |
| || (github.event_name == 'push' && github.ref == 'refs/heads/main') | |
| || (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'test-with-secrets')) | |
| }} | |
| uses: ./.github/workflows/rust-testing-integration.yaml | |
| secrets: inherit | |
| with: | |
| rust_channel: '1.89.0' | |
| target: x86_64 | |
| runner: ubuntu-latest | |
| # Code quality checks (build wheels with sccache, run in parallel) | |
| linting: | |
| name: Code Quality | |
| uses: ./.github/workflows/linting.yaml | |
| # Dependency checks (runs independently) | |
| dependency_check: | |
| name: Dependency Check | |
| uses: ./.github/workflows/dependency-check.yaml | |
| with: | |
| rust_channel: '1.89.0' | |
| target: x86_64 | |
| runner: ubuntu-latest |