[DO NOT MERGE] Optimize CI pipeline with artifact sharing and enhanced caching #7
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 * * *' | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| env: | |
| RUST_CHANNEL: '1.89.0' | |
| jobs: | |
| # Essential builds for PR testing | |
| build_ubuntu: | |
| name: Build Ubuntu | |
| uses: ./.github/workflows/shared-build.yaml | |
| with: | |
| rust_channel: '1.89.0' | |
| upload_rust_artifacts: true | |
| target: x86_64 | |
| runner: ubuntu-latest | |
| build_macos_arm: | |
| name: Build macOS ARM | |
| uses: ./.github/workflows/shared-build.yaml | |
| with: | |
| rust_channel: '1.89.0' | |
| upload_rust_artifacts: true | |
| target: aarch64 | |
| runner: macos-14 | |
| build_windows: | |
| name: Build Windows | |
| uses: ./.github/workflows/shared-build.yaml | |
| with: | |
| rust_channel: '1.89.0' | |
| upload_rust_artifacts: true | |
| target: x86_64 | |
| runner: windows-latest | |
| # Platform-specific tests (start immediately after Rust builds) | |
| test_ubuntu: | |
| name: Test Ubuntu | |
| needs: [build_ubuntu] | |
| uses: ./.github/workflows/rust-testing-safe.yaml | |
| with: | |
| target: x86_64 | |
| runner: ubuntu-latest | |
| include_docker_tests: true | |
| test_macos_arm: | |
| name: Test macOS ARM | |
| needs: [build_macos_arm] | |
| uses: ./.github/workflows/rust-testing-safe.yaml | |
| with: | |
| target: aarch64 | |
| runner: macos-14 | |
| include_docker_tests: false | |
| test_windows: | |
| name: Test Windows | |
| needs: [build_windows] | |
| uses: ./.github/workflows/rust-testing-safe.yaml | |
| with: | |
| target: x86_64 | |
| runner: windows-latest | |
| include_docker_tests: false | |
| # Python tests (builds wheels internally using Rust artifacts) | |
| python_tests_ubuntu: | |
| name: Python Tests Ubuntu | |
| needs: [build_ubuntu] | |
| uses: ./.github/workflows/python-testing.yaml | |
| with: | |
| rust_channel: '1.89.0' | |
| target: x86_64 | |
| runner: ubuntu-latest | |
| python_tests_macos_arm: | |
| name: Python Tests macOS ARM | |
| needs: [build_macos_arm] | |
| uses: ./.github/workflows/python-testing.yaml | |
| with: | |
| rust_channel: '1.89.0' | |
| target: aarch64 | |
| runner: macos-14 | |
| python_tests_windows: | |
| name: Python Tests Windows | |
| needs: [build_windows] | |
| uses: ./.github/workflows/python-testing.yaml | |
| with: | |
| rust_channel: '1.89.0' | |
| target: x86_64 | |
| runner: windows-latest | |
| # Integration tests with cloud credentials | |
| test_integration: | |
| name: Test Integration | |
| needs: [build_ubuntu] | |
| 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 (runs independently) | |
| linting: | |
| name: Code Quality | |
| uses: ./.github/workflows/linting.yaml | |
| # Dependency checks (runs independently, depends on Ubuntu build) | |
| dependency_check: | |
| name: Dependency Check | |
| needs: [build_ubuntu] | |
| uses: ./.github/workflows/dependency-check.yaml | |
| with: | |
| rust_channel: '1.89.0' | |
| target: x86_64 | |
| runner: ubuntu-latest |