.gitlab-ci.yml 4.32 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
# Procedure: Use GitLab job templates in and use them in the job description by
# using the "extend" keyword.
8
#
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
# PLEASE, OMIT FOLLOWING GITLAB PITFALLS:
#
36
37
38
# 1. "include:" statement does not work properly and seems really buggy.
#    Therefore, define all job templates and jobs directly here.
#    "include: .gitlab/ci/templates/test_stage_templates.yml" does not work!
39
40
# 2. Variables from "variables" section are not expanded correctly in "url"
#    section of an "environment".
41

42
# Job Template Definitions
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
.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
72
73
        
    when: manual
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

.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
89
90
        
    when: manual
91
92
93
94
95
96
97
98
99
100
101
102
103
104

.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

# Job Definitions

105
## Jobs for GNU/Linux runner (which is labelled with tag "linux")
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
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

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

129
## Jobs for Windows runner (which is labelled with tag "windows")
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
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

145
146
147
148
149
150
deploy_branch_on_windows:
    extends: .template_deploy_branch
    tags:
        - windows        
    environment:
        name: windows
151
        url: ${VADERE_DEPLOYMENT_BASE_URL}/branches/vadere.${CI_COMMIT_REF_NAME}.${CI_ENVIRONMENT_NAME}.zip