Skip to content

added emsdk and build script #333

added emsdk and build script

added emsdk and build script #333

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
branches:
- main
- merge-xeus-python-kernel
pull_request:
branches:
- main
- merge-xeus-python-kernel
defaults:
run:
shell: bash -l {0}
jobs:
test-unix:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12]
build_type: [static_build, shared_build]
steps:
- uses: actions/checkout@v2
- name: Get number of CPU cores
uses: SimenB/github-actions-cpu-cores@v1
- name: install mamba
uses: mamba-org/provision-with-micromamba@main
with:
environment-file: environment-dev.yml
environment-name: xeus-python
- name: Make build directory
run: mkdir build
- name: Static build option
if: matrix.build_type == 'static_build'
run: |
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DXPYT_BUILD_SHARED=OFF -DXPYT_USE_SHARED_XEUS_PYTHON=OFF"
echo "CMAKE_EXTRA_ARGS=$CMAKE_EXTRA_ARGS" >> $GITHUB_ENV
- name: Shared build option
if: matrix.build_type == 'shared_build'
run: |
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DXPYT_BUILD_STATIC=OFF"
echo "CMAKE_EXTRA_ARGS=$CMAKE_EXTRA_ARGS" >> $GITHUB_ENV
- name: cmake configure
run: |
cmake .. \
-D CMAKE_PREFIX_PATH=$CONDA_PREFIX \
-D CMAKE_INSTALL_PREFIX=$CONDA_PREFIX \
-D CMAKE_INSTALL_LIBDIR=lib \
-D PYTHON_EXECUTABLE=`which python` \
-D XPYT_BUILD_TESTS=ON \
-D CMAKE_C_COMPILER=$CC \
-D CMAKE_CXX_COMPILER=$CXX \
${{ env.CMAKE_EXTRA_ARGS }}
working-directory: build
- name: Install
run: make -j ${{ steps.cpu-cores.outputs.count }} install
working-directory: build
- name: Print version
run: xpython --version
#- name: Test xeus-python C++
# run: ./test_xeus_python
# timeout-minutes: 4
# working-directory: build/test
- name: Test xeus-python Python
run: pytest . -vvv --ignore=lite
test-win:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2019, windows-2022]
build_type: [static_build, shared_build]
steps:
- uses: actions/checkout@v2
- name: install mamba
uses: mamba-org/provision-with-micromamba@main
with:
environment-file: environment-dev.yml
environment-name: xeus-python
- name: micromamba shell hook
shell: powershell
run: |
micromamba shell hook -s cmd.exe -p C:\Users\runneradmin\micromamba-root
- name: Make build directory
run: mkdir build
- name: Static build option
if: matrix.build_type == 'static_build'
run: |
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DXPYT_BUILD_SHARED=OFF -DXPYT_USE_SHARED_XEUS_PYTHON=OFF"
echo "CMAKE_EXTRA_ARGS=$CMAKE_EXTRA_ARGS" >> $GITHUB_ENV
- name: Shared build option
if: matrix.build_type == 'shared_build'
run: |
CMAKE_EXTRA_ARGS="$CMAKE_EXTRA_ARGS -DXPYT_BUILD_STATIC=OFF"
echo "CMAKE_EXTRA_ARGS=$CMAKE_EXTRA_ARGS" >> $GITHUB_ENV
- name: cmake configure
shell: cmd
run: |
call C:\Users\runneradmin\micromamba-root\condabin\micromamba.bat activate xeus-python
cmake .. ^
-GNinja ^
-DCMAKE_BUILD_TYPE=Release ^
-DXPYT_BUILD_TESTS=ON ^
-DCMAKE_INSTALL_PREFIX="%CONDA_PREFIX%\Library" ^
-DXEXTRA_JUPYTER_DATA_DIR=%CONDA_PREFIX%\share\jupyter ^
-DXPYT_BUILD_XPYTHON_EXTENSION=ON ^
-DXEUS_PYTHONHOME_RELPATH=..\\ ^
-DCMAKE_CXX_FLAGS=/D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING ^
${{ env.CMAKE_EXTRA_ARGS }}
working-directory: build
- name: build
shell: cmd
run: |
call C:\Users\runneradmin\micromamba-root\condabin\micromamba.bat activate xeus-python
set CL=/MP
ninja install
working-directory: build
- name: Test xeus-python C++
shell: cmd /C call {0}
run: |
micromamba activate xeus-python
test_xeus_python
timeout-minutes: 4
working-directory: build/test
- name: Test xeus-python Python
shell: cmd
run: |
call C:\Users\runneradmin\micromamba-root\condabin\micromamba.bat activate xeus-python
pytest . -vvv --ignore=lite
test-wasm:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
emsdk_ver: ["3.1.45"]
steps:
- uses: actions/checkout@v2
- name: Get number of CPU cores
uses: SimenB/github-actions-cpu-cores@v1
################################################################
# MAMBA
################################################################
- name: micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: environment-wasm-build.yml
environment-name: xeus-python-wasm-build
init-shell: >-
bash
cache-environment: true
post-cleanup: 'all'
- name: Build xeus-python-wasm and jupyterlite-xeus-python
run: |
cd lite
python -m pip install -e . -v
- uses: actions/upload-artifact@v2
with:
name: xeus-python-wasm
path: |
lite/build/xeus-python/xpython_wasm.js
lite/build/xeus-python/xpython_wasm.wasm