Build Status #537
Workflow file for this run
This file contains 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.9 | ||
node-version: [20.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: "perspective-metadata" | ||
- name: Lint | ||
run: pnpm run lint | ||
# - name: Docs Build | ||
# run: pnpm run docs | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: perspective-metadata | ||
path: | | ||
rust/perspective-client/src/ | ||
rust/perspective-client/docs/ | ||
rust/perspective-js/src/ts/ | ||
rust/perspective-viewer/src/ts/ | ||
# ,-,---. . . ,-_/ .---. . | ||
# '|___/ . . . | ,-| ' | ,-. . , ,-. \___ ,-. ,-. . ,-. |- | ||
# ,| \ | | | | | | | ,-| | / ,-| \ | | | | | | | ||
# `-^---' `-^ ' `' `-^ | `-^ `' `-^ `---' `-' ' ' |-' `' | ||
# /` | | | ||
# `--' ' | ||
build_js: | ||
runs-on: ${{ matrix.os }} | ||
needs: [lint_and_docs] | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-22.04 | ||
python-version: | ||
- 3.9 | ||
node-version: [20.x] | ||
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: | ||
clean: "true" | ||
python: "false" | ||
skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | ||
- name: WebAssembly Build | ||
run: pnpm run build --ci | ||
env: | ||
PACKAGE: "perspective-cpp,perspective,perspective-viewer,perspective-viewer-datagrid,perspective-viewer-d3fc,perspective-viewer-openlayers,perspective-workspace,perspective-cli" | ||
# PSP_USE_CCACHE: 1 | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: perspective-js-dist | ||
path: | | ||
# ,-,---. . . .-,--. . . | ||
# '|___/ . . . | ,-| '|__/ . . |- |-. ,-. ,-. | ||
# ,| \ | | | | | | ,| | | | | | | | | | | ||
# `-^---' `-^ ' `' `-^ `' `-| `' ' ' `-' ' ' | ||
# /| | ||
# `-' | ||
rust/perspective-js/ | ||
rust/perspective-viewer/ | ||
packages/perspective-jupyterlab/ | ||
packages/perspective-viewer-d3fc/ | ||
packages/perspective-viewer-datagrid/ | ||
packages/perspective-viewer-openlayers/ | ||
packages/perspective-esbuild-plugin/ | ||
packages/perspective-webpack-plugin/ | ||
packages/perspective-cli/ | ||
packages/perspective-workspace/ | ||
build_python: | ||
runs-on: ${{ matrix.os }} | ||
needs: [lint_and_docs] | ||
container: ${{ matrix.container }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-22.04 | ||
- macos-13 | ||
- windows-2022 | ||
arch: | ||
- aarch64 | ||
- x86_64 | ||
python-version: | ||
- 3.9 | ||
node-version: [20.x] | ||
include: | ||
- os: ubuntu-22.04 | ||
arch: x86_64 | ||
python-version: 3.9 | ||
container: pagmo2/manylinux228_x86_64_with_deps | ||
is-release: | ||
- ${{ startsWith(github.ref, 'refs/tags/v') }} | ||
exclude: | ||
- os: windows-2022 | ||
arch: aarch64 | ||
- os: ubuntu-22.04 | ||
arch: aarch64 | ||
- os: macos-13 | ||
is-release: false | ||
- os: windows-2022 | ||
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: ${{ matrix.container && 'true' || 'false' }} | ||
skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | ||
- name: Python Build | ||
run: pnpm run build | ||
if: ${{ !contains(matrix.os, 'windows') }} | ||
env: | ||
PACKAGE: "perspective-python" | ||
PSP_ARCH: ${{ matrix.arch }} | ||
PSP_ROOT_DIR: ${{ github.workspace }} | ||
PSP_BUILD_WHEEL: 1 | ||
- name: Python 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: "perspective-python" | ||
PSP_ARCH: ${{ matrix.arch }} | ||
PSP_BUILD_WHEEL: 1 | ||
# Windows sucks lol | ||
- uses: actions/upload-artifact@v4 | ||
if: ${{ runner.os == 'Windows' }} | ||
with: | ||
name: perspective-python-dist-${{ matrix.arch}}-${{ matrix.os }}-${{ matrix.python-version }} | ||
path: D:\psp-rust\wheels\*.whl | ||
- uses: actions/upload-artifact@v4 | ||
# if: ${{ runner.os != 'Windows' }} | ||
with: | ||
name: perspective-python-dist-${{ matrix.arch}}-${{ matrix.os }}-${{ matrix.python-version }} | ||
path: rust/target/wheels/*.whl | ||
# ,-,---. . . . ,--,--' . | ||
# '|___/ . . . | ,-| ,-. ,-. ,-| `- | ,-. ,-. |- | ||
# ,| \ | | | | | | ,-| | | | | , | |-' `-. | | ||
# `-^---' `-^ ' `' `-^ `-^ ' ' `-^ `-' `-' `-' `' | ||
# | ||
# .-,--. . | ||
# `|__/ . . ,-. |- | ||
# )| \ | | `-. | | ||
# `' ` `-^ `-' `' | ||
# | ||
build_and_test_rust: | ||
runs-on: ${{ matrix.os }} | ||
needs: [lint_and_docs] | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-22.04 | ||
- windows-2022 | ||
arch: | ||
- x86_64 | ||
node-version: [20.x] | ||
is-release: | ||
- ${{ startsWith(github.ref, 'refs/tags/v') }} | ||
exclude: | ||
- os: windows-2022 | ||
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: "perspective-rs" | ||
PSP_ROOT_DIR: ${{ github.workspace }} | ||
- name: Python 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: "perspective-rs" | ||
- name: Rust Test | ||
if: ${{ !contains(matrix.os, 'windows') }} | ||
run: pnpm run test | ||
env: | ||
PACKAGE: "perspective-rs" | ||
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: "perspective-rs" | ||
- name: Package | ||
if: ${{ startsWith(github.ref, 'refs/tags/v') && !contains(matrix.os, 'windows') }} | ||
run: cargo package --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: ${{ startsWith(github.ref, 'refs/tags/v') && !contains(matrix.os, 'windows') }} | ||
with: | ||
name: perspective-rust | ||
path: rust/target/package/*.crate | ||
# ,-,---. . . .-,--. . . | ||
# '|___/ . . . | ,-| '|__/ . . ,-. ,-| . ,-| ,-. | ||
# ,| \ | | | | | | .| | | | | | | | | | |-' | ||
# `-^---' `-' ' `' `-' `' `-| `-' `-' ' `-' `-' | ||
# /| | ||
# `-' | ||
build_emscripten_wheel: | ||
runs-on: ${{ matrix.os }} | ||
needs: [lint_and_docs] | ||
# if: ${{ startsWith(github.ref, 'refs/tags/v') }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-22.04 | ||
arch: | ||
- x86_64 | ||
python-version: | ||
- 3.9 | ||
node-version: [20.x] | ||
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: | ||
pyodide: "true" | ||
javascript: "false" | ||
arch: ${{ matrix.arch }} | ||
manylinux: "false" | ||
skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | ||
- name: Python Build Pyodide | ||
run: pnpm install && pnpm run build | ||
env: | ||
PSP_PYODIDE: 1 | ||
PACKAGE: "perspective-python" | ||
CI: 1 | ||
- name: "Test Pyodide" | ||
run: pnpm run test | ||
env: | ||
PSP_PYODIDE: 1 | ||
PACKAGE: "perspective-python" | ||
CI: 1 | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: perspective-python-dist-wasm32-emscripten-${{ matrix.python-version }} | ||
path: rust/target/wheels/*.whl | ||
# ,-,---. . . . ,--,--' . | ||
# '|___/ . . . | ,-| ,-. ,-. ,-| `- | ,-. ,-. |- | ||
# ,| \ | | | | | | ,-| | | | | , | |-' `-. | | ||
# `-^---' `-^ ' `' `-^ `-^ ' ' `-^ `-' `-' `-' `' | ||
# | ||
# ,-_/ . . . | ||
# ' | . . ,-. . . |- ,-. ,-. | ,-. |-. | ||
# | | | | | | | | |-' | | ,-| | | | ||
# | `-^ |-' `-| `' `-' ' `' `-^ ^-' | ||
# /` | | /| | ||
# `--' ' `-' | ||
# | ||
build_and_test_juptyerlab: | ||
needs: [build_js, build_python] | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-22.04 | ||
- macos-13 | ||
- windows-2022 | ||
arch: | ||
- aarch64 | ||
- x86_64 | ||
python-version: | ||
- 3.9 | ||
node-version: [20.x] | ||
is-release: | ||
- ${{ startsWith(github.ref, 'refs/tags/v') }} | ||
exclude: | ||
- os: windows-2022 | ||
arch: aarch64 | ||
- os: ubuntu-22.04 | ||
arch: aarch64 | ||
- os: macos-13 | ||
is-release: false | ||
- os: windows-2022 | ||
is-release: false | ||
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: | ||
rust: "false" | ||
cpp: "false" | ||
skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-js-dist | ||
path: . | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-dist-${{ matrix.arch }}-${{ matrix.os }}-${{ matrix.python-version }} | ||
path: . | ||
- name: Build extension | ||
run: pnpm run build | ||
env: | ||
PACKAGE: "perspective-jupyterlab" | ||
- run: node tools/perspective-scripts/repack_wheel.mjs | ||
- name: Python Build sdist | ||
run: pnpm run build | ||
env: | ||
PACKAGE: "perspective-python" | ||
if: ${{ runner.os == 'Linux' }} | ||
# PSP_USE_CCACHE: 1 | ||
# PSP_ARCH: ${{ matrix.arch }} | ||
PSP_BUILD_SDIST: 1 | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: perspective-python-dist-${{ matrix.arch}}-${{ matrix.os }}-${{ matrix.python-version }} | ||
path: "*.whl" | ||
overwrite: true | ||
- uses: actions/upload-artifact@v4 | ||
if: ${{ runner.os == 'Linux' }} | ||
with: | ||
name: perspective-python-sdist | ||
path: rust/target/wheels/*.tar.gz | ||
- uses: ./.github/actions/install-wheel | ||
if: ${{ runner.os == 'Linux' }} | ||
- name: Run Jupyter Tests | ||
if: ${{ runner.os == 'Linux' }} | ||
run: | | ||
jupyter lab --generate-config | ||
pnpm run test --jupyter | ||
env: | ||
PACKAGE: "perspective-jupyterlab" | ||
# PSP_USE_CCACHE: 1 | ||
# ,--,--' . ,-_/ .---. . | ||
# `- | ,-. ,-. |- ' | ,-. . , ,-. \___ ,-. ,-. . ,-. |- | ||
# , | |-' `-. | | ,-| | / ,-| \ | | | | | | | ||
# `-' `-' `-' `' | `-^ `' `-^ `---' `-' ' ' |-' `' | ||
# /` | | | ||
# `--' ' | ||
test_js: | ||
needs: [build_js] | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-22.04 | ||
python-version: | ||
- 3.9 | ||
node-version: [20.x] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Config | ||
id: config-step | ||
uses: ./.github/actions/config | ||
- name: Initialize Build | ||
uses: ./.github/actions/install-deps | ||
with: | ||
python: "false" | ||
rust: "false" | ||
cpp: "false" | ||
skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-js-dist | ||
path: . | ||
- name: Run Tests | ||
run: pnpm run test | ||
env: | ||
PACKAGE: "perspective-cpp,perspective,perspective-viewer,perspective-viewer-datagrid,perspective-viewer-d3fc,perspective-viewer-openlayers,perspective-workspace,perspective-cli" | ||
# PSP_USE_CCACHE: 1 | ||
# ,--,--' . .-,--. . . | ||
# `- | ,-. ,-. |- '|__/ . . |- |-. ,-. ,-. | ||
# , | |-' `-. | ,| | | | | | | | | | | ||
# `-' `-' `-' `' `' `-| `' ' ' `-' ' ' | ||
# /| | ||
# `-' | ||
test_python: | ||
needs: [build_python] | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: | ||
- ubuntu-22.04 | ||
- macos-13 | ||
- windows-2022 | ||
python-version: | ||
- 3.9 | ||
# - 3.12 | ||
node-version: [20.x] | ||
is-release: | ||
- ${{ startsWith(github.ref, 'refs/tags/v') }} | ||
arch: | ||
- x86_64 | ||
exclude: | ||
- os: macos-13 | ||
is-release: false | ||
- os: windows-2022 | ||
is-release: false | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Config | ||
id: config-step | ||
uses: ./.github/actions/config | ||
- name: Initialize Build | ||
uses: ./.github/actions/install-deps | ||
with: | ||
rust: "false" | ||
cpp: "false" | ||
skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-dist-${{ matrix.arch }}-${{ matrix.os }}-${{ matrix.python-version }} | ||
- uses: ./.github/actions/install-wheel | ||
- name: Run Tests | ||
run: pnpm run test | ||
env: | ||
PACKAGE: "perspective-python" | ||
# PSP_USE_CCACHE: 1 | ||
# ,-,---. . . | ||
# '|___/ ,-. ,-. ,-. |-. ,-,-. ,-. ,-. | , | ||
# ,| \ |-' | | | | | | | | ,-| | |< | ||
# `-^---' `-' ' ' `-' ' ' ' ' ' `-^ ' ' ` | ||
# | ||
# .-,--. . . | ||
# '|__/ . . |- |-. ,-. ,-. | ||
# ,| | | | | | | | | | | ||
# `' `-| `' ' ' `-' ' ' | ||
# /| | ||
# `-' | ||
benchmark_python: | ||
needs: [build_python, build_js] | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-22.04] | ||
python-version: [3.9] | ||
node-version: [20.x] | ||
arch: [x86_64] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Config | ||
id: config-step | ||
uses: ./.github/actions/config | ||
- name: Initialize Build | ||
uses: ./.github/actions/install-deps | ||
with: | ||
rust: "false" | ||
cpp: "false" | ||
skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-js-dist | ||
path: . | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-dist-${{ matrix.arch }}-${{ matrix.os }}-${{ matrix.python-version }} | ||
- uses: ./.github/actions/install-wheel | ||
with: | ||
inplace: "false" | ||
- name: Benchmarks | ||
run: pnpm run bench | ||
env: | ||
PACKAGE: "perspective-python" | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: perspective-python-benchmarks | ||
path: tools/perspective-bench/dist/benchmark-python.arrow | ||
# ,-,---. . . | ||
# '|___/ ,-. ,-. ,-. |-. ,-,-. ,-. ,-. | , | ||
# ,| \ |-' | | | | | | | | ,-| | |< | ||
# `-^---' `-' ' ' `-' ' ' ' ' ' `-^ ' ' ` | ||
# | ||
# ,-_/ .---. . | ||
# ' | ,-. . , ,-. \___ ,-. ,-. . ,-. |- | ||
# | ,-| | / ,-| \ | | | | | | | ||
# | `-^ `' `-^ `---' `-' ' ' |-' `' | ||
# /` | | | ||
# `--' ' | ||
benchmark_js: | ||
needs: [build_js] | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
strategy: | ||
matrix: | ||
os: [ubuntu-22.04] | ||
node-version: [20.x] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Config | ||
id: config-step | ||
uses: ./.github/actions/config | ||
- name: Initialize Build | ||
uses: ./.github/actions/install-deps | ||
with: | ||
rust: "false" | ||
cpp: "false" | ||
python: "false" | ||
javascript: "false" | ||
skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-js-dist | ||
path: . | ||
- name: Benchmarks | ||
run: pnpm run bench | ||
env: | ||
PACKAGE: "perspective" | ||
- uses: actions/upload-artifact@v4 | ||
with: | ||
name: perspective-js-benchmarks | ||
path: tools/perspective-bench/dist/benchmark-js.arrow | ||
# .-,--. . . . | ||
# '|__/ . . |-. | . ,-. |-. | ||
# ,| | | | | | | `-. | | | ||
# `' `-^ ^-' `' ' `-' ' ' | ||
# | ||
publish: | ||
needs: | ||
[ | ||
build_and_test_juptyerlab, | ||
test_python, | ||
test_js, | ||
benchmark_js, | ||
benchmark_python, | ||
build_emscripten_wheel, | ||
build_and_test_rust, | ||
lint_and_docs, | ||
] | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
strategy: | ||
matrix: | ||
os: [ubuntu-22.04] | ||
runs-on: ${{ matrix.os }} | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Config | ||
id: config-step | ||
uses: ./.github/actions/config | ||
- name: Initialize Build | ||
uses: ./.github/actions/install-deps | ||
with: | ||
rust: "false" | ||
cpp: "false" | ||
python: "false" | ||
javascript: "false" | ||
skip_cache: ${{ steps.config-step.outputs.SKIP_CACHE }} | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-js-dist | ||
path: . | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-dist-aarch64-macos-13-3.9 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-dist-x86_64-macos-13-3.9 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-dist-x86_64-windows-2022-3.9 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-dist-x86_64-ubuntu-22.04-3.9 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-dist-wasm32-emscripten-3.9 | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-sdist | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-js-benchmarks | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-python-benchmarks | ||
- uses: actions/download-artifact@v4 | ||
with: | ||
name: perspective-rust | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./rust/perspective-js | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./rust/perspective-viewer | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./packages/perspective-viewer-datagrid | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./packages/perspective-viewer-d3fc | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./packages/perspective-viewer-openlayers | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./packages/perspective-workspace | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./packages/perspective-cli | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./packages/perspective-webpack-plugin | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./packages/perspective-esbuild-plugin | ||
- run: pnpm pack --pack-destination=../.. | ||
working-directory: ./packages/perspective-jupyterlab | ||
- name: Publish assets | ||
uses: softprops/action-gh-release@v2 | ||
with: | ||
draft: true | ||
generate_release_notes: true | ||
files: | | ||
*.whl | ||
*.tar.gz | ||
*.tgz | ||
*.arrow | ||
*.crate | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |