Skip to content

Deprecate kaleido

Deprecate kaleido #670

Workflow file for this run

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 }}
timeout-minutes: ${{ matrix.os == 'windows-latest' && 30 || 10 }}
steps:
- name: Setup Chrome
uses: browser-actions/setup-chrome@v1
with:
chrome-version: 'latest'
install-chromedriver: true
id: setup-chrome
- 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 non-Windows platforms
- name: Run tests (${{ matrix.os }})
if: matrix.os != 'windows-latest'
run: cargo test --verbose --workspace --features plotly_ndarray,plotly_image,static_export_default --exclude plotly_kaleido
# Run tests on Windows with Chrome WebDriver
- name: Run tests (${{ matrix.os }})
if: matrix.os == 'windows-latest'
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 plotly_ndarray,plotly_image,static_export_chromedriver --exclude plotly_kaleido
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 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