From f0fb48f0c37624d2b8814c164bc1ff3fc0db4e46 Mon Sep 17 00:00:00 2001 From: mcbarton <150042563+mcbarton@users.noreply.github.com> Date: Wed, 12 Jun 2024 17:26:09 +0100 Subject: [PATCH 1/7] Create deploy-github-page.yml --- .github/workflows/deploy-github-page.yml | 95 ++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 .github/workflows/deploy-github-page.yml diff --git a/.github/workflows/deploy-github-page.yml b/.github/workflows/deploy-github-page.yml new file mode 100644 index 00000000..309faa74 --- /dev/null +++ b/.github/workflows/deploy-github-page.yml @@ -0,0 +1,95 @@ +name: Build and Deploy + +on: + workflow_dispatch: + pull_request: + branches: + - main + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: install mamba + uses: mamba-org/setup-micromamba@main + with: + environment-file: environment-wasm-build.yml + init-shell: bash + environment-name: xeus-cpp-wasm-build + + - name: Setup default Build Type on *nux + if: ${{ runner.os != 'windows' }} + run: | + os="${{ matrix.os }}" + if [[ "${os}" == "macos"* ]]; then + echo "ncpus=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV + else + echo "ncpus=$(nproc --all)" >> $GITHUB_ENV + fi + + - name: Setup default Build Type on Windows + if: ${{ runner.os == 'windows' }} + run: | + $env:ncpus=$([Environment]::ProcessorCount) + echo "ncpus=$env:ncpus" >> $env:GITHUB_ENV + + - name: Setup emsdk + shell: bash -l {0} + run: | + emsdk install ${{matrix.emsdk_ver}} + + - name: Build xeus-cpp + shell: bash -l {0} + run: | + emsdk activate ${{matrix.emsdk_ver}} + source $CONDA_EMSDK_DIR/emsdk_env.sh + micromamba create -f environment-wasm-host.yml --platform=emscripten-wasm32 + + mkdir build + pushd build + + export EMPACK_PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-build + export PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-cpp-wasm-host + echo "PREFIX=$PREFIX" >> $GITHUB_ENV + export CMAKE_PREFIX_PATH=$PREFIX + export CMAKE_SYSTEM_PREFIX_PATH=$PREFIX + + emcmake cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_PREFIX_PATH=$PREFIX \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DXEUS_CPP_EMSCRIPTEN_WASM_BUILD=ON \ + -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ + .. + EMCC_CFLAGS='-sERROR_ON_UNDEFINED_SYMBOLS=0' emmake make -j ${{ env.ncpus }} install + + - name: Jupyter Lite integration + shell: bash -l {0} + run: | + micromamba create -n xeus-lite-host jupyterlite-core + micromamba activate xeus-lite-host + python -m pip install jupyterlite-xeus + jupyter lite build --XeusAddon.prefix=${{ env.PREFIX }} --contents README.md --output-dir dist + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./dist + + deploy: + needs: build + if: github.ref == 'refs/heads/main' + permissions: + pages: write + id-token: write + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} From ea78818e9a2d265ddd0a97643b9be1edcc4be27e Mon Sep 17 00:00:00 2001 From: mcbarton <150042563+mcbarton@users.noreply.github.com> Date: Wed, 12 Jun 2024 18:05:25 +0100 Subject: [PATCH 2/7] Add Github page link in README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index d7ceba29..e04f0de5 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,10 @@ `xeus-cpp` is a Jupyter kernel for cpp based on the native implementation of the Jupyter protocol [xeus](https://github.com/jupyter-xeus/xeus). +Try Jupyter Lite demo by clicking below + +[![lite-badge](https://jupyterlite.rtfd.io/en/latest/_static/badge.svg)](https://compiler-research.github.io/xeus-cpp/lab/index.html) + ## Installation within a mamba environment (non wasm build instructions) To ensure that the installation works, it is preferable to install `xeus-cpp` in a From 3a89d7c9402896a67a2229ecfa9be0bbd777fc0a Mon Sep 17 00:00:00 2001 From: mcbarton <150042563+mcbarton@users.noreply.github.com> Date: Wed, 12 Jun 2024 18:38:21 +0100 Subject: [PATCH 3/7] Fix deploy-github-page.yml --- .github/workflows/deploy-github-page.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/deploy-github-page.yml b/.github/workflows/deploy-github-page.yml index 309faa74..2541cbaf 100644 --- a/.github/workflows/deploy-github-page.yml +++ b/.github/workflows/deploy-github-page.yml @@ -83,13 +83,17 @@ jobs: with: path: ./dist - deploy: - needs: build - if: github.ref == 'refs/heads/main' - permissions: - pages: write - id-token: write - + deploy: + needs: build + if: github.ref == 'refs/heads/main' + permissions: + pages: write + id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-24.04 + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 From d1807c86ed76869361d89b60ba3abafe3fc57ff9 Mon Sep 17 00:00:00 2001 From: mcbarton <150042563+mcbarton@users.noreply.github.com> Date: Wed, 12 Jun 2024 18:41:54 +0100 Subject: [PATCH 4/7] Fix deploy-github-page.yml --- .github/workflows/deploy-github-page.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-github-page.yml b/.github/workflows/deploy-github-page.yml index 2541cbaf..c6d82bef 100644 --- a/.github/workflows/deploy-github-page.yml +++ b/.github/workflows/deploy-github-page.yml @@ -11,7 +11,15 @@ on: jobs: build: - runs-on: ubuntu-24.04 + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + include: + - name: Github-page + os: ubuntu-24.04 + emsdk_ver: "3.1.45" steps: - uses: actions/checkout@v4 with: From e999cb1c7f10a7f60a7fd9d5a9c5a44cd77c8ec9 Mon Sep 17 00:00:00 2001 From: mcbarton <150042563+mcbarton@users.noreply.github.com> Date: Wed, 12 Jun 2024 18:52:38 +0100 Subject: [PATCH 5/7] Fix deploy-github-page.yml --- .github/workflows/deploy-github-page.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/deploy-github-page.yml b/.github/workflows/deploy-github-page.yml index c6d82bef..10b621d3 100644 --- a/.github/workflows/deploy-github-page.yml +++ b/.github/workflows/deploy-github-page.yml @@ -93,7 +93,6 @@ jobs: deploy: needs: build - if: github.ref == 'refs/heads/main' permissions: pages: write id-token: write From 59f7bacd6716a85526d2062ea3229cb94d1bc107 Mon Sep 17 00:00:00 2001 From: mcbarton <150042563+mcbarton@users.noreply.github.com> Date: Wed, 12 Jun 2024 19:05:05 +0100 Subject: [PATCH 6/7] Attempt to fix deployment deploy-github-page.yml --- .github/workflows/deploy-github-page.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-github-page.yml b/.github/workflows/deploy-github-page.yml index 10b621d3..0f571e4c 100644 --- a/.github/workflows/deploy-github-page.yml +++ b/.github/workflows/deploy-github-page.yml @@ -8,7 +8,12 @@ on: push: branches: - main - + +permissions: + contents: read + pages: write + id-token: write + jobs: build: runs-on: ${{ matrix.os }} From 440c0f4715d0d25b991fc076472caab7c050f3d9 Mon Sep 17 00:00:00 2001 From: mcbarton <150042563+mcbarton@users.noreply.github.com> Date: Wed, 12 Jun 2024 19:12:12 +0100 Subject: [PATCH 7/7] Remove pull request activation for Github page workflow deploy-github-page.yml --- .github/workflows/deploy-github-page.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/deploy-github-page.yml b/.github/workflows/deploy-github-page.yml index 0f571e4c..b840b68d 100644 --- a/.github/workflows/deploy-github-page.yml +++ b/.github/workflows/deploy-github-page.yml @@ -2,9 +2,6 @@ name: Build and Deploy on: workflow_dispatch: - pull_request: - branches: - - main push: branches: - main