@@ -147,11 +147,17 @@ jobs:
147147 arch : x86_64
148148 python-version : 3.9
149149 container : pagmo2/manylinux228_x86_64_with_deps
150+ is-release :
151+ - ${{ startsWith(github.ref, 'refs/tags/v') }}
150152 exclude :
151153 - os : windows-2022
152154 arch : aarch64
153155 - os : ubuntu-22.04
154156 arch : aarch64
157+ - os : macos-13
158+ is-release : false
159+ - os : windows-2022
160+ is-release : false
155161
156162 steps :
157163 - name : Checkout
@@ -222,11 +228,17 @@ jobs:
222228 python-version :
223229 - 3.9
224230 node-version : [20.x]
231+ is-release :
232+ - ${{ startsWith(github.ref, 'refs/tags/v') }}
225233 exclude :
226234 - os : windows-2022
227235 arch : aarch64
228236 - os : ubuntu-22.04
229237 arch : aarch64
238+ - os : macos-13
239+ is-release : false
240+ - os : windows-2022
241+ is-release : false
230242
231243 steps :
232244 - name : Checkout
@@ -350,8 +362,15 @@ jobs:
350362 - 3.9
351363 # - 3.12
352364 node-version : [20.x]
365+ is-release :
366+ - ${{ startsWith(github.ref, 'refs/tags/v') }}
353367 arch :
354368 - x86_64
369+ exclude :
370+ - os : macos-13
371+ is-release : false
372+ - os : windows-2022
373+ is-release : false
355374 steps :
356375 - name : Checkout
357376 uses : actions/checkout@v4
@@ -378,3 +397,156 @@ jobs:
378397 env :
379398 PACKAGE : " perspective-python"
380399 # PSP_USE_CCACHE: 1
400+
401+ # ,-,---. . .
402+ # '|___/ ,-. ,-. ,-. |-. ,-,-. ,-. ,-. | ,
403+ # ,| \ |-' | | | | | | | | ,-| | |<
404+ # `-^---' `-' ' ' `-' ' ' ' ' ' `-^ ' ' `
405+ #
406+ # ,-_/ .---. .
407+ # ' | ,-. . , ,-. \___ ,-. ,-. . ,-. |-
408+ # | ,-| | / ,-| \ | | | | | |
409+ # | `-^ `' `-^ `---' `-' ' ' |-' `'
410+ # /` | |
411+ # `--' '
412+ benchmark_js :
413+ needs : [build_js]
414+ if : startsWith(github.ref, 'refs/tags/v')
415+ strategy :
416+ matrix :
417+ os : [ubuntu-22.04]
418+ node-version : [20.x]
419+ runs-on : ${{ matrix.os }}
420+ steps :
421+ - name : Checkout
422+ uses : actions/checkout@v4
423+
424+ - name : Config
425+ id : config-step
426+ uses : ./.github/actions/config
427+
428+ - name : Initialize Build
429+ uses : ./.github/actions/install-deps
430+ with :
431+ rust : " false"
432+ cpp : " false"
433+ python : " false"
434+ javascript : " false"
435+ skip_cache : ${{ steps.config-step.outputs.SKIP_CACHE }}
436+
437+ - uses : actions/download-artifact@v4
438+ with :
439+ name : perspective-js-dist
440+ path : .
441+
442+ - name : Benchmarks
443+ run : pnpm run bench
444+
445+ - uses : actions/upload-artifact@v4
446+ with :
447+ name : perspective-js-benchmarks
448+ path : tools/perspective-bench/dist/benchmark-js.arrow
449+
450+ # .-,--. . . .
451+ # '|__/ . . |-. | . ,-. |-.
452+ # ,| | | | | | | `-. | |
453+ # `' `-^ ^-' `' ' `-' ' '
454+ #
455+ publish :
456+ needs : [build_and_test_juptyerlab, test_python, test_js, benchmark_js]
457+ if : startsWith(github.ref, 'refs/tags/v')
458+ strategy :
459+ matrix :
460+ os : [ubuntu-22.04]
461+ runs-on : ${{ matrix.os }}
462+ steps :
463+ - uses : actions/checkout@v2
464+
465+ - name : Config
466+ id : config-step
467+ uses : ./.github/actions/config
468+
469+ - name : Initialize Build
470+ uses : ./.github/actions/install-deps
471+ with :
472+ rust : " false"
473+ cpp : " false"
474+ python : " false"
475+ javascript : " false"
476+ skip_cache : ${{ steps.config-step.outputs.SKIP_CACHE }}
477+
478+ - uses : actions/download-artifact@v4
479+ with :
480+ name : perspective-js-dist
481+ path : .
482+
483+ - uses : actions/download-artifact@v4
484+ with :
485+ name : perspective-python-dist-aarch64-macos-13-3.9
486+
487+ - uses : actions/download-artifact@v4
488+ with :
489+ name : perspective-python-dist-x86_64-macos-13-3.9
490+
491+ - uses : actions/download-artifact@v4
492+ with :
493+ name : perspective-python-dist-x86_64-windows-2022-3.9
494+
495+ - uses : actions/download-artifact@v4
496+ with :
497+ name : perspective-python-dist-x86_64-ubuntu-22.04-3.9
498+
499+ # - uses: actions/download-artifact@v4
500+ # with:
501+ # name: perspective-python-sdist
502+
503+ - uses : actions/download-artifact@v4
504+ with :
505+ name : perspective-js-benchmarks
506+
507+ # - uses: actions/download-artifact@v4
508+ # with:
509+ # name: perspective-python-benchmarks
510+
511+ - run : pnpm pack --pack-destination=../..
512+ working-directory : ./rust/perspective-js
513+
514+ - run : pnpm pack --pack-destination=../..
515+ working-directory : ./rust/perspective-viewer
516+
517+ - run : pnpm pack --pack-destination=../..
518+ working-directory : ./packages/perspective-viewer-datagrid
519+
520+ - run : pnpm pack --pack-destination=../..
521+ working-directory : ./packages/perspective-viewer-d3fc
522+
523+ - run : pnpm pack --pack-destination=../..
524+ working-directory : ./packages/perspective-viewer-openlayers
525+
526+ - run : pnpm pack --pack-destination=../..
527+ working-directory : ./packages/perspective-workspace
528+
529+ - run : pnpm pack --pack-destination=../..
530+ working-directory : ./packages/perspective-cli
531+
532+ - run : pnpm pack --pack-destination=../..
533+ working-directory : ./packages/perspective-webpack-plugin
534+
535+ - run : pnpm pack --pack-destination=../..
536+ working-directory : ./packages/perspective-esbuild-plugin
537+
538+ - run : pnpm pack --pack-destination=../..
539+ working-directory : ./packages/perspective-jupyterlab
540+
541+ - name : Publish assets
542+ uses : softprops/action-gh-release@v2
543+ with :
544+ draft : true
545+ generate_release_notes : true
546+ files : |
547+ *.whl
548+ *.tar.gz
549+ *.tgz
550+ *.arrow
551+ env :
552+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments