.gitlab-ci.yml 3.37 KB
Newer Older
1
2
variables:
  GIT_SUBMODULE_STRATEGY: normal
3
  
LEFEBVREJP email's avatar
LEFEBVREJP email committed
4
5
6
stages:
  - test
  - analysis
7
8
9
10
11
12
  
workflow:
  rules:
    - if: $CI_MERGE_REQUEST_ID
    - if: $CI_COMMIT_TAG
    - if: $CI_COMMIT_BRANCH == "master"
LEFEBVREJP email's avatar
LEFEBVREJP email committed
13
14

mac_llvm_testing:
15
  stage: test
LEFEBVREJP email's avatar
LEFEBVREJP email committed
16
17
18
19
20
21
22
23
24
25
26
  tags:
    - mac
  script:
    - which git
    - git --version
    - module load cmake qt/5.9.1
    - which cmake
    - mkdir build
    - cd build
    - export rsm_ENABLE_Fortran=OFF
    - cmake -DBUILDNAME=$(uname -s)-LLVM-Debug-${CI_BUILD_REF_NAME}
LEFEBVREJP email's avatar
LEFEBVREJP email committed
27
        -DOPENSSL_ROOT_DIR=/opt/openssl/1.1.1d/
28
        -DLibSSH_DIR=/opt/libssh/0.9.3/lib/cmake/libssh/
LEFEBVREJP email's avatar
LEFEBVREJP email committed
29
30
31
32
        -DCMAKE_BUILD_TYPE=DEBUG
        -Drsm_ENABLE_TESTS=ON
        -Drsm_ENABLE_rsmcore=ON
        -Drsm_ENABLE_rsmwidgets=OFF ..
33
34
35
36
    - ctest --verbose --output-on-failure
        -D ExperimentalStart
        -D ExperimentalBuild
        -D ExperimentalTest
LEFEBVREJP email's avatar
LEFEBVREJP email committed
37
38

linux_gcc_testing:
39
  stage: test
LEFEBVREJP email's avatar
LEFEBVREJP email committed
40
41
42
43
44
45
46
47
48
49
50
  tags:
    - linux
  script:
    - which git
    - git --version
    - mkdir build
    - cd build
    - module load cmake qt/5.9.0
    - which cmake
    - module load valgrind
    - cmake -DBUILDNAME=$(uname -s)-GCC-4.8.5-Release-${CI_BUILD_REF_NAME}
LEFEBVREJP email's avatar
LEFEBVREJP email committed
51
52
        -DOPENSSL_ROOT_DIR=/opt/vendors/openssl/1.1.1d/
        -DLibSSH_DIR=/opt/vendors/libssh/0.9.3/lib64/cmake/libssh/
LEFEBVREJP email's avatar
LEFEBVREJP email committed
53
54
55
56
        -DCMAKE_BUILD_TYPE=Release
        -Drsm_ENABLE_TESTS=ON
        -Drsm_ENABLE_rsmcore=ON
        -Drsm_ENABLE_rsmwidgets=OFF ..
57
58
59
60
    - ctest --verbose --output-on-failure
        -D ExperimentalStart
        -D ExperimentalBuild
        -D ExperimentalTest
61
62
63
64
65
66
67
        
windows_msvc_testing:
  stage: test
  tags:
    - nsmwin10
  script:
    - ci\windows_testing.bat
LEFEBVREJP email's avatar
LEFEBVREJP email committed
68
69
70
71
72
73
74
75
76
77

linux_analysis:
  stage: analysis
  tags:
    - linux
  script:
    - which git
    - git --version
    - mkdir build
    - cd build
78
    - module load cmake qt/5.9.0
LEFEBVREJP email's avatar
LEFEBVREJP email committed
79
80
81
82
83
    - which cmake
    - module load valgrind
    - cmake -D COVERAGE_EXTRA_FLAGS="-s ${CI_PROJECT_DIR}/googletest -d"
        -D MEMCHECK_COMMAND=$(which valgrind)
        -DBUILDNAME=$(uname -s)-GCC-4.8.5-Debug-${CI_BUILD_REF_NAME}
LEFEBVREJP email's avatar
LEFEBVREJP email committed
84
85
        -DOPENSSL_ROOT_DIR=/opt/vendors/openssl/1.1.1d/
        -DLibSSH_DIR=/opt/vendors/libssh/0.9.3/lib64/cmake/libssh/
LEFEBVREJP email's avatar
LEFEBVREJP email committed
86
87
88
        -DCMAKE_BUILD_TYPE=DEBUG
        -Drsm_ENABLE_COVERAGE_TESTING=ON
        -Drsm_ENABLE_TESTS=ON
89
        -Drsm_ENABLE_rsmcore=ON
LEFEBVREJP email's avatar
LEFEBVREJP email committed
90
        -Drsm_ENABLE_rsmwidgets=OFF ..
91
92
93
94
95
96
    - ctest --verbose --output-on-failure
        -D ExperimentalStart
        -D ExperimentalBuild
        -D ExperimentalTest
        -D ExperimentalMemCheck
        -D ExperimentalCoverage
LEFEBVREJP email's avatar
LEFEBVREJP email committed
97
  allow_failure: true
98
  
99
linux_fortify:
100
  stage: analysis
LEFEBVREJP email's avatar
LEFEBVREJP email committed
101
  tags:
102
103
104
    - linux
  rules:
    - when: manual
LEFEBVREJP email's avatar
LEFEBVREJP email committed
105
  script:
106
107
108
109
110
111
112
113
    - which git
    - git --version
    - mkdir build
    - cd build
    - module load cmake qt/5.9.0 fortify
    - export CC="sourceanalyzer -b rsm gcc"
    - export CXX="sourceanalyzer -b rsm g++"
    - cmake -Drsm_ENABLE_TESTS=OFF
114
        -Drsm_ENABLE_googletest=OFF
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
        -DOPENSSL_ROOT_DIR=/opt/vendors/openssl/1.1.1d/
        -DLibSSH_DIR=/opt/vendors/libssh/0.9.3/lib64/cmake/libssh/
        -Drsm_ENABLE_rsmcore=ON
        -Drsm_ENABLE_rsmwidgets=OFF ..
    ## clean after cmake configure
    - sourceanalyzer -b rsm -clean
    - make
    - sourceanalyzer -b rsm -scan -f scanResults.fpr
    - ReportGenerator -format PDF -f rsmReport.pdf -source scanResults.fpr -template "DeveloperWorkbook.xml"
    - mv rsmReport.pdf ..
  artifacts:
    paths:
    - rsmReport.pdf
    expire_in: 1 week
  allow_failure: true