Skip to content

CI

CI #1242

Workflow file for this run

name: CI
on:
workflow_dispatch:
pull_request:
push:
schedule:
- cron: '0 2 * * *' # run at 2 AM UTC
jobs:
generic:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Install micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: .github/ci_env.yml
- name: Create project with cookiecutter
shell: bash -l {0}
run:
cookiecutter . --config-file .github/ci_context_no_wasm.yml --no-input -f
- name: Create and activate env
shell: bash -l {0}
run: |
cd xeus-mylang
micromamba create -f environment-dev.yml -y --name xeus_cookiecutter_test_env
micromamba activate xeus_cookiecutter_test_env
- name: Configure cmake
shell: bash -l {0}
run: |
micromamba activate xeus_cookiecutter_test_env
cd xeus-mylang
mkdir -p bld
cd bld
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
-DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
- name: Build
shell: bash -l {0}
run: |
cd xeus-mylang/bld
cmake --build . --target install --config Release
- name: Test
shell: bash -l {0}
run: |
micromamba activate xeus_cookiecutter_test_env
cd xeus-mylang/test
pytest . --reruns 5
emscripten_wasm:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Get number of CPU cores
uses: SimenB/github-actions-cpu-cores@v2
- name: Install micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: .github/ci_env.yml
- name: Create project with cookiecutter
shell: bash -l {0}
run: |
cookiecutter . --config-file .github/ci_context_wasm.yml --no-input -f
- name: Create build environment
shell: bash -l {0}
run: micromamba create -f xeus-mylang/environment-wasm-build.yml -y
- name: Build
shell: bash -l {0}
working-directory: xeus-mylang
run: |
micromamba activate xeus-mylang-wasm-build
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-mylang-wasm-build
export PREFIX=$MAMBA_ROOT_PREFIX/envs/xeus-mylang-wasm-host
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 \
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \
..
make -j${{ steps.cpu-cores.outputs.count }}
push:
needs: [generic, emscripten_wasm]
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Install micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: .github/ci_env.yml
- name: Create project with cookiecutter
shell: bash -l {0}
run:
cookiecutter . --config-file .github/ci_context_wasm.yml --no-input -f
- name: Push to rendered branch
if: github.repository == 'jupyter-xeus/xeus-cookiecutter' && github.ref == 'refs/heads/main'
uses: s0/git-publish-subdir-action@develop
env:
REPO: self
BRANCH: rendered
FOLDER: xeus-mylang
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MESSAGE: "added rendered: ({sha}) {msg}"
# GITHUB_TOKEN permissions cannot be changed for forks
continue-on-error: true