-
-
Notifications
You must be signed in to change notification settings - Fork 179
95 lines (81 loc) · 3.06 KB
/
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
name: Windows build
on:
push:
branches:
- "**"
schedule:
# '*' is a special character in YAML, so string must be quoted
- cron: "0 4 * * WED"
workflow_dispatch:
jobs:
windows-build:
name: Windows vcpkg build
runs-on: windows-latest
env:
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
steps:
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v6
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: actions/checkout@v4
with:
repository: "fenics/ffcx"
path: ffcx
- name: Install UFCx header
working-directory: ffcx
run: |
cmake -B build-dir -S cmake/
cmake --build build-dir --config Release
cmake --install build-dir --config Release --prefix D:/a/dolfinx/ufcx-install
- uses: actions/checkout@v4
with:
repository: "fenics/ufl"
path: ufl
- name: Install UFL
working-directory: ufl
run: |
pip install .
- uses: actions/checkout@v4
with:
repository: "fenics/basix"
path: basix
- name: Install Basix (C++)
working-directory: basix
run: |
cd cpp
cmake -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -B build-dir -S .
cmake --build build-dir --config Release
cmake --install build-dir --config Release --prefix D:/a/dolfinx/basix-install
echo "D:/a/dolfinx/basix-install/bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- uses: actions/checkout@v4
with:
path: dolfinx
- name: Build and install DOLFINx C++ library
working-directory: dolfinx
run: |
cmake -DBasix_DIR=D:/a/dolfinx/basix-install/lib/cmake/basix -Dufcx_DIR=D:/a/dolfinx/ufcx-install/lib/cmake/ufcx -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -B build-dir -S cpp/
cmake --build build-dir --config Release
cmake --install build-dir --config Release --prefix D:/a/dolfinx/dolfinx-install
echo "D:/a/dolfinx/dolfinx-install/bin" | Out-File -Append -FilePath $env:GITHUB_PATH -Encoding utf8
- name: Build C++ unit tests
working-directory: dolfinx
run: |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -B build/test/ -S cpp/test/
cmake --build build/test --parallel 3
- name: Run C++ unit tests (serial)
working-directory: dolfinx
run: |
cd build/test
ctest -V --output-on-failure -R unittests
- name: Run C++ unit tests (MPI)
working-directory: dolfinx
run: |
cd build/test
mpiexec -np 3 ctest -V --output-on-failure -R unittests