-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path.gitlab-ci.yml
66 lines (58 loc) · 2.04 KB
/
.gitlab-ci.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
# GitLab CI configuration file for building and running MOSSCO based
# on a docker/ubuntu/gfortran/openmpi image
#
# SPDX-FileCopyrightText 2022 Helmholtz-Zentrum hereon
# SPDX-License-Identifier: CC0-1.0
# SPDX-FileContributor Carsten Lemmen <carsten.lemmen@hereon.de
stages: # List of stages for jobs, and their order of execution
- build
- test
- deploy
default:
image: registry.hzdr.de/mossco/esmf-docker/esmf:v8.4.0-openmpi
variables:
ESMFMKFILE: /usr/local/lib/esmf.mk
MOSSCO_DIR: ${CI_BUILDS_DIR}/mossco/code
build-job: # This job runs in the build stage, which runs first.
stage: build
before_script:
- cat ${ESMFMKFILE}
- echo "Obtaining external codes ..."
- make -C ${MOSSCO_DIR} external
- make -C ${MOSSCO_DIR} info
script:
- echo "Building MOSSCO ..."
- make -k -C ${MOSSCO_DIR} clean
- make -C ${MOSSCO_DIR}/src/utilities
- make -C ${MOSSCO_DIR} all
- make -C ${MOSSCO_DIR} install
artifacts:
paths:
- ${MOSSCO_DIR}/include
- ${MOSSCO_DIR}/lib
- ${MOSSCO_DIR}/bin
unit-test-job: # This job runs in the test stage.
stage: test # It only starts when the job in the build stage completes successfully.
before_script:
- make -C ${MOSSCO_DIR} external
script:
- echo "Building tests ..."
- make -C ${MOSSCO_DIR} all
- make -C ${MOSSCO_DIR} install
- make -C ${MOSSCO_DIR} examples
- echo "@todo actually run tests!"
lint-test-job: # This job also runs in the test stage.
stage: test # It can run at the same time as unit-test-job (in parallel).
script:
- echo "Linting code... This will take about 10 seconds."
- sleep 10
- echo "No lint issues found."
deploy-job: # This job runs in the deploy stage.
stage: deploy # It only runs when *both* jobs in the test stage complete successfully.
script:
- echo "Deploying application..."
- echo "Application successfully deployed."
artifacts:
paths:
- ${MOSSCO_DIR}/lib
- ${MOSSCO_DIR}/bin