Deprecate kaleido #597
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: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Setup Chrome | |
| uses: browser-actions/setup-chrome@v1 | |
| with: | |
| chrome-version: 'latest' | |
| install-chromedriver: true | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - run: cargo test --features plotly_ndarray,plotly_image,static_export_default | |
| - if: ${{ matrix.os == 'windows-latest' }} | |
| run: gci -recurse -filter "*example*" | |
| test-static-export: | |
| name: Test Static Export | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| browser: [firefox, chrome] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Firefox | |
| if: matrix.browser == 'firefox' | |
| uses: browser-actions/setup-firefox@v1 | |
| with: | |
| firefox-version: 'latest' | |
| - name: Setup Chrome | |
| if: matrix.browser == 'chrome' | |
| uses: browser-actions/setup-chrome@v1 | |
| with: | |
| chrome-version: 'latest' | |
| install-chromedriver: true | |
| - uses: dtolnay/rust-toolchain@stable | |
| - name: Test plotly and plotly_static | |
| shell: bash | |
| run: | | |
| if [ "${{ matrix.browser }}" = "firefox" ]; then | |
| cargo test -p plotly --features static_export_default --lib | |
| cargo test -p plotly_static --features geckodriver,webdriver_download | |
| else | |
| cargo test -p plotly --features static_export_chromedriver,static_export_downloader --lib | |
| cargo test -p plotly_static --features chromedriver,webdriver_download | |
| fi | |
| test-macos-compatibility: | |
| name: Test macOS Compatibility | |
| runs-on: macos-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 | |
| - name: Test Chrome and chromedriver installation | |
| run: | | |
| echo "Checking Chrome installation..." | |
| ls -la "/Applications/Google Chrome.app/Contents/MacOS/" || echo "Chrome not found in Applications" | |
| which google-chrome || echo "Chrome not found in PATH" | |
| echo "Checking chromedriver installation..." | |
| chromedriver --version || echo "chromedriver not found in PATH" | |
| ls -la /usr/local/bin/chromedriver || echo "chromedriver not found in /usr/local/bin" | |
| ls -la /opt/homebrew/bin/chromedriver || echo "chromedriver not found in /opt/homebrew/bin" | |
| - name: Run macOS-specific tests | |
| run: | | |
| echo "Running macOS compatibility tests..." | |
| cargo test -p plotly_static --features chromedriver,webdriver_download --lib macos_tests::macos_tests::test_chrome_installation | |
| cargo test -p plotly_static --features chromedriver,webdriver_download --lib macos_tests::macos_tests::test_chromedriver_installation | |
| cargo test -p plotly_static --features chromedriver,webdriver_download --lib macos_tests::macos_tests::test_static_exporter_creation_macos | |
| cargo test -p plotly_static --features chromedriver,webdriver_download --lib macos_tests::macos_tests::test_basic_png_export_macos | |
| cargo test -p plotly_static --features chromedriver,webdriver_download --lib macos_tests::macos_tests::test_macos_chrome_flags | |
| cargo test -p plotly_static --features chromedriver,webdriver_download --lib macos_tests::macos_tests::test_user_data_directory_management | |
| - name: Run all plotly_static tests on macOS | |
| run: | | |
| echo "Running all plotly_static tests on macOS..." | |
| cargo test -p plotly_static --features chromedriver,webdriver_download --lib | |
| - name: Test plotly with static export on macOS | |
| run: | | |
| echo "Testing plotly with static export on macOS..." | |
| cargo test -p plotly --features static_export_chromedriver,static_export_downloader --lib | |
| 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, | |
| financial_charts, | |
| images, | |
| kaleido, | |
| maps, | |
| ndarray, | |
| scientific_charts, | |
| shapes, | |
| static_export, | |
| subplots, | |
| themes, | |
| ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Firefox (for static_export) | |
| if: matrix.example == 'static_export' | |
| uses: browser-actions/setup-firefox@v1 | |
| with: | |
| firefox-version: 'latest' | |
| - 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 Firefox (for static_export example) | |
| uses: browser-actions/setup-firefox@v1 | |
| with: | |
| firefox-version: 'latest' | |
| - 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 |