Skip to content

[DO NOT MERGE] Optimize CI pipeline with artifact sharing and enhanced caching #7

[DO NOT MERGE] Optimize CI pipeline with artifact sharing and enhanced caching

[DO NOT MERGE] Optimize CI pipeline with artifact sharing and enhanced caching #7

Workflow file for this run

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