-
Notifications
You must be signed in to change notification settings - Fork 0
103 lines (90 loc) · 2.77 KB
/
test.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
name: Build and Test
on:
push:
paths-ignore:
- ".devcontainer/**"
- ".vscode/**"
- "doc/**"
- "*.md"
pull_request:
paths-ignore:
- ".devcontainer/**"
- ".vscode/**"
- "doc/**"
- "*.md"
jobs:
test:
name: Build and Test
strategy:
matrix:
os: ["linux", "macos"]
architecture: ["x86_64"]
device: ["cpu", "cuda"]
python-version: ["3.10"]
exclude:
- os: "macos"
device: "cuda"
include:
- os: "linux"
architecture: "x86_64"
runs-on: "ubuntu-22.04"
- os: "macos"
architecture: "x86_64"
runs-on: "macos-13"
runs-on: ${{ matrix.runs-on }}
env:
CXX_COMPILER: "/usr/lib/ccache/g++"
C_COMPILER: "/usr/lib/ccache/gcc"
SCALUQ_USE_TEST: "Yes"
SCALUQ_USE_CUDA: ${{ matrix.device == 'cuda' && 'Yes' || 'No' }}
SCALUQ_CUDA_ARCH: "PASCAL61"
steps:
- uses: actions/checkout@v4
- name: Install gcc-11/g++-11
if: ${{ matrix.os == 'linux' }}
run: |
sudo apt update && \
sudo apt install -y software-properties-common && \
sudo apt update && \
sudo apt install -y gcc-11 g++-11 && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100 && \
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100
- name: Setup cmake
uses: lukka/get-cmake@latest
- name: Install Ninja
run: sudo apt install ninja-build
- name: Setup ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: "${{ github.job }}-${{ matrix.device }}"
verbose: 2
- name: Install CUDA toolkit
if: ${{ matrix.device == 'cuda' }}
uses: Jimver/cuda-toolkit@v0.2.11
with:
cuda: "12.2.0"
method: "network"
- name: Show installed Compiler version
run: |
nvcc --version
gcc --version
g++ --version
cmake --version
- name: Install scaluq for Ubuntu
run: CMAKE_BUILD_TYPE=Debug ./script/build_gcc.sh
- name: Check format
run: |
ninja -C build format
diff=$(git diff)
echo -n "$diff"
test $(echo -n "$diff" | wc -l) -eq 0
- name: Install scaluq Python module
run: pip install .[ci]
- name: Test in Ubuntu
if: ${{ matrix.device == 'cpu' }} # currently GPU runner is not supported
run: |
OMP_PROC_BIND=false ninja test -C build -j $(nproc)
- name: Test if stub exists
run: |
echo -e "from scaluq import StateVector\nfrom scaluq.gate import I" > /tmp/stub_sample.py
mypy /tmp/stub_sample.py