-
Notifications
You must be signed in to change notification settings - Fork 2
136 lines (117 loc) · 3.82 KB
/
test-linux-cxx-only.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
name: Testing c++ only on ubuntu-latest
on:
push:
pull_request:
schedule:
- cron: '0 12 * * 0'
env:
SKBUILD_BUILD_OPTIONS: --verbose
jobs:
build-depends:
uses: ./.github/workflows/test-linux-dependencies.yml
build:
needs: build-depends
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Set up requirements & configuration variables
run: |
sudo apt-get update
sudo apt-get install build-essential cmake
pip install --upgrade pip wheel build
git submodule update --init --recursive
echo "SKBUILD_BUILD_OPTIONS=${{ env.SKBUILD_BUILD_OPTIONS }}" >> "$GITHUB_ENV"
### libcasm-global ###
- name: restore libcasm-global cache
id: cache-libcasm-global-restore
uses: actions/cache/restore@v4
with:
path: CASMcode_global/dist
key: ${{ runner.os }}-libcasm-global-v2-0-5
### libcasm-composition ###
- name: restore libcasm-composition cache
id: cache-libcasm-composition-restore
uses: actions/cache/restore@v4
with:
path: CASMcode_composition/dist
key: ${{ runner.os }}-libcasm-composition-v2-0a3
### libcasm-xtal ###
- name: restore libcasm-xtal cache
id: cache-libcasm-xtal-restore
uses: actions/cache/restore@v4
with:
path: CASMcode_crystallography/dist
key: ${{ runner.os }}-libcasm-xtal-v2-0a11
### libcasm-clexulator ###
- name: restore libcasm-clexulator cache
id: cache-libcasm-clexulator-restore
uses: actions/cache/restore@v4
with:
path: CASMcode_clexulator/dist
key: ${{ runner.os }}-libcasm-clexulator-v2-0a5
### libcasm-configuration ###
- name: restore libcasm-configuration cache
id: cache-libcasm-configuration-restore
uses: actions/cache/restore@v4
with:
path: CASMcode_configuration/dist
key: ${{ runner.os }}-libcasm-configuration-v2-0a5
### libcasm-monte ###
- name: restore libcasm-monte cache
id: cache-libcasm-monte-restore
uses: actions/cache/restore@v4
with:
path: CASMcode_monte/dist
key: ${{ runner.os }}-libcasm-monte-v2-0a2
- name: Install CASM dependencies
run: |
pip install CASMcode_global/dist/*.whl
pip install CASMcode_composition/dist/*.whl
pip install CASMcode_crystallography/dist/*.whl
pip install CASMcode_clexulator/dist/*.whl
pip install CASMcode_configuration/dist/*.whl
pip install CASMcode_monte/dist/*.whl
pip install -r build_requirements.txt
- name: configure
shell: bash
run: |
mkdir build_cxx_only
cd build_cxx_only
cmake -DCMAKE_BUILD_TYPE=Release ..
- name: make
shell: bash
run: |
cd build_cxx_only
make -j4 VERBOSE=1
- name: install
shell: bash
run: |
cd build_cxx_only
make install
- name: configure tests
shell: bash
run: |
mkdir build_cxx_test
cd build_cxx_test
cmake -DCMAKE_BUILD_TYPE=Release ../tests
- name: make tests
shell: bash
run: |
cd build_cxx_test
make -j4 VERBOSE=1
- name: run tests
shell: bash
run: |
cd build_cxx_test
export CASM_PREFIX=$(python -m libcasm.casmglobal --prefix)
make test
- name: upload test log
if: always()
uses: actions/upload-artifact@v4
with:
name: libcasm-monte-cxx-test-log
path: build_cxx_test/Testing/Temporary/LastTest.log