Build Status #1640
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
| # ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ | |
| # ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃ | |
| # ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃ | |
| # ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃ | |
| # ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃ | |
| # ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ | |
| # ┃ Copyright (c) 2017, the Perspective Authors. ┃ | |
| # ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃ | |
| # ┃ This file is part of the Perspective library, distributed under the terms ┃ | |
| # ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃ | |
| # ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ | |
| name: Build Status | |
| on: | |
| push: | |
| branches: | |
| - master | |
| tags: | |
| - v* | |
| paths-ignore: | |
| - AUTHORS | |
| - CHANGELOG.md | |
| - CONTRIBUTING.md | |
| - LICENSE | |
| - README.md | |
| - binder/ | |
| - docs/ | |
| - examples/ | |
| - rust/perspective-python/README.md | |
| pull_request: | |
| branches: | |
| - master | |
| workflow_dispatch: | |
| inputs: | |
| ci-full: | |
| description: "Run Full CI" | |
| required: false | |
| type: boolean | |
| default: false | |
| ci-skip-cache: | |
| description: "Omit Cache from CI run" | |
| required: false | |
| type: boolean | |
| default: false | |
| ci-skip-python: | |
| description: "Skip Python components of CI" | |
| required: false | |
| type: boolean | |
| default: false | |
| ci-include-windows: | |
| description: "Include Windows (Python) components of CI" | |
| required: false | |
| type: boolean | |
| default: false | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| jobs: | |
| # , . . .-,--. | |
| # ) . ,-. |- ,-. ,-. ,-| ' | \ ,-. ,-. ,-. | |
| # / | | | | ,-| | | | | , | / | | | `-. | |
| # `--' ' ' ' `' `-^ ' ' `-^ `-^--' `-' `-' `-' | |
| # | |
| lint_and_docs: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-22.04 | |
| python-version: | |
| - 3.11 | |
| node-version: [22.x] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Config | |
| id: config-step | |
| uses: ./.github/actions/config | |
| - name: Initialize Build | |
| id: init-step | |
| uses: ./.github/actions/install-deps | |
| with: | |
| skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | |
| - name: Metadata Build | |
| run: pnpm run build --ci | |
| env: | |
| PACKAGE: "metadata" | |
| - name: Lint | |
| run: pnpm run lint --nightly | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: perspective-metadata | |
| path: | | |
| rust/perspective-server/cpp/ | |
| rust/perspective-server/cmake/ | |
| rust/perspective-client/src/ | |
| rust/perspective-client/docs/ | |
| rust/perspective-js/src/ts/ | |
| rust/perspective-viewer/src/ts/ | |
| rust/perspective-python/LICENSE_THIRDPARTY_cargo.yml | |
| # ,-,---. . . . ,--,--' . | |
| # '|___/ . . . | ,-| ,-. ,-. ,-| `- | ,-. ,-. |- | |
| # ,| \ | | | | | | ,-| | | | | , | |-' `-. | | |
| # `-^---' `-^ ' `' `-^ `-^ ' ' `-^ `-' `-' `-' `' | |
| # | |
| # .-,--. . | |
| # `|__/ . . ,-. |- | |
| # )| \ | | `-. | | |
| # `' ` `-^ `-' `' | |
| # | |
| build_and_test_rust: | |
| runs-on: ${{ matrix.os }} | |
| needs: [lint_and_docs] | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-22.04 | |
| - windows-2025 | |
| arch: | |
| - x86_64 | |
| node-version: [22.x] | |
| is-release: | |
| - ${{ startsWith(github.ref, 'refs/tags/v') || github.ref_name == 'master' || github.event.inputs.ci-full }} | |
| # exclude: | |
| # - os: windows-2025 | |
| # is-release: false | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Config | |
| id: config-step | |
| uses: ./.github/actions/config | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: perspective-metadata | |
| path: rust/ | |
| - name: Initialize Build | |
| id: init-step | |
| uses: ./.github/actions/install-deps | |
| with: | |
| # javascript: "false" | |
| arch: ${{ matrix.arch }} | |
| manylinux: "false" | |
| skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | |
| - name: Rust Build | |
| run: pnpm run build | |
| if: ${{ !contains(matrix.os, 'windows') }} | |
| env: | |
| PACKAGE: "rust" | |
| PSP_ROOT_DIR: ${{ github.workspace }} | |
| - name: Rust Build (Windows) | |
| run: | | |
| New-Item -ItemType Directory -Path $env:CARGO_TARGET_DIR -Force | |
| pnpm run build | |
| if: ${{ contains(matrix.os, 'windows') }} | |
| env: | |
| CARGO_TARGET_DIR: D:\psp-rust | |
| PSP_ROOT_DIR: ${{ github.workspace }} | |
| PACKAGE: "rust" | |
| - name: Rust Test | |
| if: ${{ !contains(matrix.os, 'windows') }} | |
| run: pnpm run test | |
| env: | |
| PACKAGE: "rust" | |
| PSP_ROOT_DIR: ${{ github.workspace }} | |
| - name: Rust Test (Windows) | |
| run: | | |
| New-Item -ItemType Directory -Path $env:CARGO_TARGET_DIR -Force | |
| pnpm run test | |
| if: ${{ contains(matrix.os, 'windows') }} | |
| env: | |
| CARGO_TARGET_DIR: D:\psp-rust | |
| PSP_ROOT_DIR: ${{ github.workspace }} | |
| PACKAGE: "rust" | |
| - name: Package | |
| if: ${{ !contains(matrix.os, 'windows') && steps.config-step.outputs.FULL_RUN }} | |
| run: cargo package --no-verify --allow-dirty -p perspective -p perspective-viewer -p perspective-js -p perspective-client -p perspective-server -p perspective-python | |
| - uses: actions/upload-artifact@v4 | |
| if: ${{ !contains(matrix.os, 'windows') && steps.config-step.outputs.FULL_RUN }} | |
| with: | |
| name: perspective-rust | |
| path: rust/target/package/*.crate |