-
Notifications
You must be signed in to change notification settings - Fork 1
179 lines (148 loc) · 5.22 KB
/
cicd-windows.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
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
# TODO:
# (-) Install dfx in WSL
# (-) the tool installation
# Reference: https://github.com/WebAssembly/wasi-sdk/blob/main/.github/workflows/main.yml
name: cicd-windows
on:
workflow_dispatch:
push:
paths:
- "src/**"
- "test/**"
- "Makefile"
- ".github/trigger.txt"
- ".github/workflows/cicd-windows.yml"
jobs:
all-windows:
name: all-windows
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
python-version: [3.8, 3.11]
include:
- arch: x64
steps:
# https://github.com/marketplace/actions/setup-miniconda
- uses: conda-incubator/setup-miniconda@v3
with:
python-version: ${{ matrix.python-version }}
- name: Anaconda PowerShell Check
shell: powershell
run: |
conda info
conda list
# -------------------------------------------------------------------
# Checkout icpp-pro & icpp-candid as nested directory
- name: checkout icpp-pro
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: checkout icpp-candid
uses: actions/checkout@v4
with:
repository: icppWorld/icpp-candid
path: icpp-candid
fetch-depth: 0
# -------------------------------------------------------------------
# Install icpp with python dependencies
- name: Install icpp-candid from setup.py in conda shell
shell: powershell
run: |
pip install --upgrade pip
cd icpp-candid
pip install -e ".[dev]"
- name: Install icpp-pro from setup.py in conda shell
shell: powershell
run: |
pip install -e ".[dev]"
- name: Check versions in conda shell
shell: powershell
run: |
echo "icpp --version: $(icpp --version)"
echo "pip version : $(pip --version)"
echo "python version : $(python --version)"
echo "Ensure conda works properly"
conda info
where pip
where python
where icpp
# -------------------------------------------------------------------
# Run the native tests - only mingw64 is needed
- name: install-mingw64
shell: powershell
run: |
echo "Installing mingw64"
icpp install-mingw64
- name: native mockic test
shell: powershell
run: |
echo "Testing all_canister_native"
python -m scripts.all_canister_native
# -------------------------------------------------------------------
# Run the smoke tests - requires wasi-sdk & rust with dependencies
- name: install-wasi-sdk
shell: powershell
run: |
echo "Installing wasi-sdk"
icpp install-wasi-sdk
- name: install-rust
shell: powershell
run: |
echo "Installing rust"
icpp install-rust
# -------------------------------------------------------------------
# Build wasm for all the canisters
- name: build-wasm greet canister
shell: powershell
run: |
cd .\src\icpp\canisters\greet
icpp build-wasm --generate-bindings no
- name: build-wasm test\canisters\canister_1
shell: powershell
run: |
cd .\test\canisters\canister_1
icpp build-wasm --generate-bindings no
- name: build-wasm test\canisters\canister_flags
shell: powershell
run: |
cd .\test\canisters\canister_flags
icpp build-wasm --generate-bindings no
- name: build-wasm test\canisters\canister_http
shell: powershell
run: |
cd .\test\canisters\canister_http
icpp build-wasm --generate-bindings no
# ********************************************************************************
# *** CAN'T GET THIS TO WORK IN A GITHUB ACTION ***
# *** This runs ok locally: python -m scripts.all_canister_deploy_local_pytest ***
# ********************************************************************************
# -------------------------------------------------------------------
# # Set up wsl
# #
# - name: enable WSL
# run: |
# echo "Enabling WSL"
# dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# shell: pwsh
# - name: wsl setup with Vampire
# uses: Vampire/setup-wsl@v3
# with:
# distribution: Ubuntu-20.04
# additional-packages:
# build-essential
# - name: pwd in wsl-bash
# shell: wsl-bash {0}
# run: pwd
# - name: install dfx in wsl-bash
# shell: wsl-bash {0}
# run: make install-dfx
# - name: configure dfx in wsl-bash
# shell: wsl-bash {0}
# run: source "$HOME/.local/share/dfx/env"
# - name: smoketest
# shell: powershell
# run: |
# echo "Testing all_canister_deploy_local_pytest"
# python -m scripts.all_canister_deploy_local_pytest