-
Notifications
You must be signed in to change notification settings - Fork 4
140 lines (124 loc) · 4.62 KB
/
ci_testing.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
name: CMake
on: [push, pull_request]
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
build-library:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.9", "3.10", "3.11"]
defaults:
run:
shell: bash -l {0}
env:
SSPICE_DEBUG: y
SPICEQL_LOG_LEVEL: DEBUG
steps:
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
with:
submodules: true
- uses: conda-incubator/setup-miniconda@3b0f2504dd76ef23b6d31f291f4913fb60ab5ff3
with:
miniforge-version: latest
use-mamba: true
channels: conda-forge
activate-environment: spiceql
environment-file: environment.yml
auto-activate-base: false
auto-update-conda: true
python-version: ${{ matrix.python-version }}
- name: Check build environment
run: |
conda list
- name: Configure CMake
run: |
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=RELEASE -DSPICEQL_BUILD_DOCS=OFF -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX ..
cmake --build .
- name: Test
working-directory: ${{github.workspace}}/build
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: |
ctest -VV
- name: Install
working-directory: ${{github.workspace}}/build
# Execute the install. You can specify a specific target with "--target <NAME>"
run: |
cmake --install . --config $BUILD_TYPE
- name: Check install
working-directory: ${{github.workspace}}
# Check that the library installed properly
run: |
if [ "$RUNNER_OS" == "macOS" ]; then
test -e $CONDA_PREFIX/lib/libSpiceQL.dylib
elif [ "$RUNNER_OS" == "Linux" ]; then
test -e $CONDA_PREFIX/lib/libSpiceQL.so
fi
test -e $CONDA_PREFIX/include/SpiceQL/spiceql.h
$CONDA_PREFIX/bin/python -c "import pyspiceql"
# compair all json files against the schema
- name: check json files
working-directory: ${{github.workspace}}/SpiceQL/db/
run: |
for file in *.json;
do
pwd
check-jsonschema $file --schemafile schema/spiceMissionSchmea.schema.json
done;
build-docs:
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9
- uses: conda-incubator/setup-miniconda@3b0f2504dd76ef23b6d31f291f4913fb60ab5ff3
with:
miniconda-version: "latest"
activate-environment: spiceql
channels: conda-forge
environment-file: environment.yml
auto-activate-base: false
auto-update-conda: true
- name: Conda info
run: |
conda info
conda list
- name: Create Build Environment
# Some projects don't allow in-source building, so create separate build and install
# directorie; we'll use them as our working directories for subsequent commands.
run: |
cmake -E make_directory ${{github.workspace}}/build
cmake -E make_directory ${{github.workspace}}/install
- name: Configure CMake
working-directory: ${{github.workspace}}/build
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DSPICEQL_BUILD_LIB=OFF -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/install
- name: Build
working-directory: ${{github.workspace}}/build
# Execute the build.
run: |
cmake --build . --config $BUILD_TYPE
- name: Check Build Docs
working-directory: ${{github.workspace}}/build/docs/sphinx
# Check for the built docs
run: |
test -e index.html
test -e reference/api.html
test -e reference/tutorials.html
- name: Install Docs
working-directory: ${{github.workspace}}/build
# Install the build.
run: |
cmake --install . --config $BUILD_TYPE
- name: Check Install Docs
working-directory: ${{github.workspace}}/install
# Check for the built docs
run: |
test -e share/doc/SpiceQL/sphinx/index.html
test -e share/doc/SpiceQL/sphinx/reference/api.html
test -e share/doc/SpiceQL/sphinx/reference/tutorials.html