Deprecate kaleido #682
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 | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| branches: [ main ] | |
| push: | |
| branches: [ main ] | |
| # Cancel any in-flight jobs for the same PR/branch so there's only one active | |
| # at a time | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| RUST_BACKTRACE: full | |
| jobs: | |
| rustfmt: | |
| name: Rustfmt | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rustfmt | |
| - run: cargo fmt --all -- --check | |
| - run: cd ${{ github.workspace }}/examples && cargo fmt --all -- --check | |
| clippy: | |
| name: Clippy | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Chrome | |
| uses: browser-actions/setup-chrome@v1 | |
| with: | |
| chrome-version: 'latest' | |
| install-chromedriver: true | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| targets: wasm32-unknown-unknown | |
| # lint the main library workspace for non-wasm target | |
| - run: cargo clippy --features all -- -D warnings -A deprecated | |
| # lint the non-wasm examples | |
| - run: cd ${{ github.workspace }}/examples && cargo clippy --workspace --exclude "wasm*" --exclude "kaleido" -- -D warnings | |
| # lint the plotly library for wasm target | |
| - run: cargo clippy --package plotly --target wasm32-unknown-unknown -- -D warnings | |
| # lint the wasm examples | |
| - run: cd ${{ github.workspace }}/examples/wasm-yew && cargo clippy --target wasm32-unknown-unknown --all | |
| semver: | |
| name: semver | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Check semver | |
| uses: obi1kenobi/cargo-semver-checks-action@v2 | |
| with: | |
| package: plotly | |
| feature-group: only-explicit-features | |
| features: kaleido | |
| rust-toolchain: stable | |
| release-type: minor | |
| test: | |
| name: Tests | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| browser: chrome | |
| features: plotly_ndarray,plotly_image,static_export_default | |
| - os: ubuntu-latest | |
| browser: firefox | |
| features: plotly_ndarray,plotly_image,static_export_geckodriver,static_export_downloader | |
| - os: windows-latest | |
| browser: chrome | |
| features: plotly_ndarray,plotly_image,static_export_chromedriver | |
| - os: macos-latest | |
| browser: chrome | |
| features: plotly_ndarray,plotly_image,static_export_default | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: ${{ matrix.os == 'windows-latest' && 30 || 10 }} | |
| steps: | |
| - name: Setup Chrome | |
| if: matrix.browser == 'chrome' | |
| uses: browser-actions/setup-chrome@v1 | |
| with: | |
| chrome-version: 'latest' | |
| install-chromedriver: true | |
| id: setup-chrome | |
| - name: Setup Firefox | |
| if: matrix.browser == 'firefox' | |
| uses: browser-actions/setup-firefox@v1 | |
| with: | |
| firefox-version: 'latest' | |
| id: setup-firefox | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| # Cache cargo registry for all platforms | |
| - name: Cache cargo registry | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry/index/ | |
| ~/.cargo/registry/cache/ | |
| ~/.cargo/git/db/ | |
| key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-registry- | |
| # Windows-specific environment setup for static export tests | |
| - name: Setup Windows environment for static export | |
| if: matrix.os == 'windows-latest' | |
| run: | | |
| .\.github\scripts\setup-windows-static-export.ps1 ` | |
| -ChromeVersion "${{ steps.setup-chrome.outputs.chrome-version }}" ` | |
| -ChromePath "${{ steps.setup-chrome.outputs.chrome-path }}" ` | |
| -ChromeDriverPath "${{ steps.setup-chrome.outputs.chromedriver-path }}" | |
| # Run tests on Ubuntu with Chrome | |
| - name: Run tests (${{ matrix.os }} - Chrome) | |
| if: matrix.os == 'ubuntu-latest' && matrix.browser == 'chrome' | |
| run: cargo test --verbose --workspace --features ${{ matrix.features }} --exclude plotly_kaleido | |
| # Run save_surface_to_png test with nocapture for detailed webdriver logs | |
| - name: Run save_surface_to_png test with nocapture (${{ matrix.os }} - Firefox) | |
| if: matrix.os == 'ubuntu-latest' && matrix.browser == 'firefox' | |
| run: | | |
| # Set environment variables for Firefox WebDriver | |
| export BROWSER_PATH="${{ steps.setup-firefox.outputs.firefox-path }}" | |
| export RUST_LOG="debug" | |
| export RUST_BACKTRACE="1" | |
| echo "Environment variables set:" | |
| echo "BROWSER_PATH: $BROWSER_PATH" | |
| echo "RUST_LOG: $RUST_LOG" | |
| # Run only the save_surface_to_png test with nocapture for full webdriver logs | |
| cargo test save_surface_to_png --verbose --features ${{ matrix.features }} -- --nocapture | |
| # Run tests on Ubuntu with Firefox | |
| - name: Run tests (${{ matrix.os }} - Firefox) | |
| if: matrix.os == 'ubuntu-latest' && matrix.browser == 'firefox' | |
| run: | | |
| # Set environment variables for Firefox WebDriver | |
| export BROWSER_PATH="${{ steps.setup-firefox.outputs.firefox-path }}" | |
| export RUST_LOG="debug" | |
| export RUST_BACKTRACE="1" | |
| echo "Environment variables set:" | |
| echo "BROWSER_PATH: $BROWSER_PATH" | |
| echo "RUST_LOG: $RUST_LOG" | |
| cargo test --verbose --workspace --features ${{ matrix.features }} --exclude plotly_kaleido | |
| # Run tests on macOS with Chrome | |
| - name: Run tests (${{ matrix.os }} - Chrome) | |
| if: matrix.os == 'macos-latest' && matrix.browser == 'chrome' | |
| run: cargo test --verbose --workspace --features ${{ matrix.features }} --exclude plotly_kaleido | |
| # Run tests on Windows with Chrome WebDriver | |
| - name: Run tests (${{ matrix.os }} - Chrome) | |
| if: matrix.os == 'windows-latest' && matrix.browser == 'chrome' | |
| shell: pwsh | |
| run: | | |
| # Set environment variables for WebDriver | |
| $env:WEBDRIVER_PATH = "${{ steps.setup-chrome.outputs.chromedriver-path }}" | |
| $env:BROWSER_PATH = "${{ steps.setup-chrome.outputs.chrome-path }}" | |
| $env:RUST_LOG = "debug" | |
| $env:RUST_BACKTRACE = "1" | |
| $env:ANGLE_DEFAULT_PLATFORM = "swiftshader" | |
| Write-Host "Environment variables set:" | |
| Write-Host "WEBDRIVER_PATH: $env:WEBDRIVER_PATH" | |
| Write-Host "BROWSER_PATH: $env:BROWSER_PATH" | |
| cargo test --verbose --workspace --features ${{ matrix.features }} --exclude plotly_kaleido | |
| - name: Upload example.pdf artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: example-pdf-${{ matrix.os }} | |
| path: ${{ github.workspace }}/plotly_static/example.pdf | |
| retention-days: 30 | |
| code-coverage: | |
| name: Code Coverage | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: llvm-tools-preview | |
| - uses: taiki-e/install-action@cargo-llvm-cov | |
| - uses: codecov/codecov-action@v3 | |
| build_examples: | |
| name: Build Examples | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| example: # missing jupyter | |
| [ | |
| 3d_charts, | |
| basic_charts, | |
| custom_controls, | |
| customization/consistent_static_format_export, | |
| customization/density_mapbox_example, | |
| customization/multiple_plots_example, | |
| financial_charts, | |
| images, | |
| kaleido, | |
| maps, | |
| ndarray, | |
| scientific_charts, | |
| shapes, | |
| statistical_charts, | |
| subplots, | |
| themes, | |
| ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Chrome (for static_export) | |
| if: matrix.example == 'static_export' | |
| uses: browser-actions/setup-chrome@v1 | |
| with: | |
| chrome-version: 'latest' | |
| install-chromedriver: true | |
| - uses: dtolnay/rust-toolchain@stable | |
| - run: cd ${{ github.workspace }}/examples/${{ matrix.example }} && cargo build | |
| build_wasm_examples: | |
| name: Build Wasm Examples | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| example: [basic, callback-example] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| - run: cd ${{ github.workspace }}/examples/wasm-yew/${{ matrix.example }} && cargo build --target wasm32-unknown-unknown | |
| build_book: | |
| name: Build Book | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Chrome (for static_export) | |
| uses: browser-actions/setup-chrome@v1 | |
| with: | |
| chrome-version: 'latest' | |
| install-chromedriver: true | |
| id: setup-chrome | |
| - uses: dtolnay/rust-toolchain@stable | |
| - run: cargo install mdbook --no-default-features --features search --vers "^0.4" --locked --quiet | |
| - name: Build examples to generate needed html files | |
| run: | | |
| cd ${{ github.workspace }}/examples/basic_charts && cargo run | |
| cd ${{ github.workspace }}/examples/statistical_charts && cargo run | |
| cd ${{ github.workspace }}/examples/scientific_charts && cargo run | |
| cd ${{ github.workspace }}/examples/financial_charts && cargo run | |
| cd ${{ github.workspace }}/examples/3d_charts && cargo run | |
| cd ${{ github.workspace }}/examples/subplots && cargo run | |
| cd ${{ github.workspace }}/examples/shapes && cargo run | |
| cd ${{ github.workspace }}/examples/themes && cargo run | |
| cd ${{ github.workspace }}/examples/static_export && cargo run | |
| - name: Build book | |
| run: mdbook build docs/book |