.gitlab-ci.yml 4.67 KB
Newer Older
1
# # GitLab CI Job Configuration
2
#
3
4
5
# Goal: Run all jobs defined here on all available runners (GNU/Linux and
# Windows).
# 
6
7
8
# Procedure: Use GitLab job templates in ".gitlab/ci/templates/" and use them
# in the job description by using the "extend" keyword.
#
9
# ## Job Description Syntax
10
11
#
# <job_name>:                   # Job name which is displayed in web interface.
12
13
#   stage: <stage_name>         # Run "script" commands in this stage. The
#                               # stages are exececuted sequentially.
14
15
16
17
18
#   script:
#      - <arbitrary_commands>   # Here you can execute arbitratry terminal
#                               # commands. If any of the commands return a
#                               # non-zero exit code, the job fails.
#
19
# ## References
20
#
21
# - https://docs.gitlab.com/ee/ci/yaml/README.html
22

23
# Variable Definitions
24
25
variables:
    VADERE_DEPLOYMENT_BASE_URL: "http://www.vadere.org/builds"
26
    VADERE_PACKAGE_NAME: "vadere.${CI_COMMIT_REF_NAME}.${CI_ENVIRONMENT_NAME}.zip"
27

28
# Stage Definitions
29
stages:
30
31
    - unit_test
    - integration_test
Daniel Lehmberg's avatar
Daniel Lehmberg committed
32
    - deploy
33

34
35
36
37
38
39
40
# PLEASE, OMIT FOLLOWING GITLAB PITFALLS:
#
# 1. "include: .gitlab/ci/windows_jobs.yml" does not work!
#    Seems a bug in GitLab's "include" statement. Therefore, define all jobs
#    directly here.
# 2. Variables from "variables" section are not expanded correctly in "url"
#    section of an "environment".
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
.template_unit_tests:
    stage: unit_test
    
    # Skip OpenCL tests by using "-Dtest=!Test1,!Test2,..." because GitLab
    # runners do not support OpenCL.
    script:
        - mvn clean
        - mvn -Dtest=!TestConvolution,!TestBitonicSort,!TestCLLinkedList,!TestCLOptimalStepsModel test
        - python3 Tools/ContinuousIntegration/collect_line_and_branch_coverage.py
        
    artifacts:
        when: on_success
        paths:
            - "*/target/site/coverage-reports"
        expire_in: 1 week
            
.template_scenario_files:
    stage: integration_test

    script:
        - mvn clean
        - mvn -Dmaven.test.skip=true package
        - python3 Tools/ContinuousIntegration/run_vadere_console_with_all_scenario_files.py
        
    artifacts:
        when: on_failure
        paths:
            - "log_dir"
        expire_in: 1 week

.template_seed_test:
    stage: integration_test

    script:
        - mvn clean
        - mvn -Dmaven.test.skip=true package
        - python3 Tools/VadereAnalysisTools/VadereAnalysisTool/setup.py install --user
        - python3 Tools/ContinuousIntegration/run_seed_comparison_test.py
        
    artifacts:
        when: on_failure
        paths: 
            - "Tools/ContinuousIntegration/run_seed_comparison_test.d/output"
        expire_in: 1 week

.template_deploy_branch:
    stage: deploy
    
    script:
        - mvn clean
        - mvn -Dmaven.test.skip=true package
        - python3 -m zipfile -c ${VADERE_PACKAGE_NAME} VadereModelTests/ VadereGui/target/vadere.jar VadereSimulator/target/vadere-console.jar
        - scp ${VADERE_PACKAGE_NAME} di49mur@webdev-mwn.lrz.de:~/webserver/htdocs/builds/branches/${VADERE_PACKAGE_NAME}
        
    when: manual
96

97
# Job Definitions
98

99
100
101
102
103
104
105
# PLEASE, OMIT FOLLOWING GITLAB PITFALLS:
#
# 1. "include: .gitlab/ci/windows_jobs.yml" does not work!
#    Seems a bug in GitLab's "include" statement. Therefore, define all jobs
#    directly here.
# 2. Variables from "variables" section are not expanded correctly in "url"
#    section of an "environment".
106

107
# Jobs for GNU/Linux runner (which is labelled with tag "linux")
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
run_unit_tests_on_linux:
    extends: .template_unit_tests
    tags:
        - linux

run_scenario_files_on_linux:
    extends: .template_scenario_files
    tags:
        - linux

run_seed_test_on_linux:
    extends: .template_seed_test
    tags:
        - linux

123
124
125
126
127
128
deploy_branch_on_linux:
    extends: .template_deploy_branch
    tags:
        - linux        
    environment:
        name: linux
129
        url: ${VADERE_DEPLOYMENT_BASE_URL}/branches/vadere.${CI_COMMIT_REF_NAME}.${CI_ENVIRONMENT_NAME}.zip
130
131

# Jobs for Windows runner (which is labelled with tag "windows")
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
run_unit_tests_on_windows:
    extends: .template_unit_tests
    tags:
        - windows

run_scenario_files_on_windows:
    extends: .template_scenario_files
    tags:
        - windows

run_seed_test_on_windows:
    extends: .template_seed_test
    tags:
        - windows

deploy_on_windows:
    extends: .template_deploy
    tags:
        - windows

152
153
154
155
156
157
deploy_branch_on_windows:
    extends: .template_deploy_branch
    tags:
        - windows        
    environment:
        name: windows
158
159
        # WATCH OUT: Variables from "variables" section are not expanded correctly here.
        url: ${VADERE_DEPLOYMENT_BASE_URL}/branches/vadere.${CI_COMMIT_REF_NAME}.${CI_ENVIRONMENT_NAME}.zip