-
Notifications
You must be signed in to change notification settings - Fork 8
147 lines (119 loc) · 4.08 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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