1
+ name : sparql-conformance
2
+
3
+ on :
4
+ push :
5
+ branches : [ master ]
6
+ pull_request :
7
+ branches : [ master ]
8
+ merge_group :
9
+
10
+ jobs :
11
+ build :
12
+ env :
13
+ compiler : clang
14
+ compiler-version : 16
15
+ build-type : Release
16
+ cmake-flags : " -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16"
17
+ runs-on : ubuntu-22.04
18
+ steps :
19
+ - uses : actions/checkout@v3
20
+ with :
21
+ submodules : " recursive"
22
+ path : qlever-code
23
+ - name : Checkout sparql-test-suite-files
24
+ uses : actions/checkout@v3
25
+ with :
26
+ repository : " w3c/rdf-tests"
27
+ path : sparql-test-suite
28
+ - name : Checkout qlever-test-suite
29
+ uses : actions/checkout@v3
30
+ with :
31
+ repository : " ad-freiburg/sparql-conformance"
32
+ path : qlever-test-suite
33
+ - name : Set up Python
34
+ uses : actions/setup-python@v4
35
+ with :
36
+ python-version : " 3.10"
37
+ - name : Install python dependencies
38
+ run : |
39
+ python -m pip install --upgrade pip
40
+ pip install requests
41
+ pip install rdflib
42
+ - name : Install dependencies
43
+ uses : ./qlever-code/.github/workflows/install-dependencies-ubuntu
44
+ - name : Install compiler
45
+ uses : ./qlever-code/.github/workflows/install-compiler-ubuntu
46
+ with :
47
+ compiler : " clang"
48
+ compiler-version : " 16"
49
+ - name : Create build directory
50
+ run : mkdir ${{github.workspace}}/qlever-code/build
51
+ - name : Configure CMake
52
+ run : cmake -S ${{github.workspace}}/qlever-code/ -B ${{github.workspace}}/qlever-code/build ${{env.cmake-flags}} -DCMAKE_BUILD_TYPE=${{env.build-type}} -DLOGLEVEL=INFO -DUSE_PARALLEL=false
53
+ - name : Build IndexBuilderMain
54
+ run : cmake --build ${{github.workspace}}/qlever-code/build --target IndexBuilderMain --config ${{env.build-type}} -- -j $(nproc)
55
+ - name : Build ServerMain
56
+ run : cmake --build ${{github.workspace}}/qlever-code/build --target ServerMain --config ${{env.build-type}} -- -j $(nproc)
57
+ - name : Execute test suite
58
+ run : |
59
+ cd qlever-test-suite
60
+ python testsuite.py config http://0.0.0.0 7001 ${{github.workspace}}/sparql-test-suite/sparql/sparql11/ ${{github.workspace}}/qlever-code/build/ localhost sparql sparql
61
+ python testsuite.py extract
62
+ python testsuite.py ${{ github.sha }}
63
+ cd ..
64
+ - name : Save workflow information
65
+ # Note: If you change any of the filenames here, you also have to change them in `upload-conformance.yml`
66
+ run : |
67
+ mkdir -p conformance-report
68
+ echo ${{ github.event_name }} > ./conformance-report/event
69
+ echo ${{ github.event.number }} > ./conformance-report/pr
70
+ echo ${{ github.repository }} > ./conformance-report/github_repository
71
+ echo ${GITHUB_REF} > ./conformance-report/github_ref
72
+ - name : Save SHA and conformance report if it is a master commit.
73
+ if : github.event_name == 'push'
74
+ run : |
75
+ echo ${{github.sha}} > ./conformance-report/sha
76
+ mv ${{ github.workspace}}/qlever-test-suite/results/${{ github.sha }}.json.bz2 conformance-report/${{ github.sha }}.json.bz2
77
+ - name : Save SHA and conformance report if it is a PR.
78
+ if : github.event_name == 'pull_request'
79
+ run : |
80
+ echo ${{github.event.pull_request.head.sha}} > ./conformance-report/sha
81
+ mv ${{ github.workspace}}/qlever-test-suite/results/${{ github.sha }}.json.bz2 conformance-report/${{ github.event.pull_request.head.sha }}.json.bz2
82
+ - name : Upload coverage artifact
83
+ uses : actions/upload-artifact@v3
84
+ with :
85
+ name : conformance-report
86
+ path : conformance-report/
0 commit comments