forked from gromacs/gromacs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
77 lines (74 loc) · 2.95 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
66
67
68
69
70
71
72
73
74
75
76
77
# Default jobs should NOT use any tags. We control where they
# are executed by using the GitLab CI settings for what runners
# accept untagged jobs. However, if you want to test a new
# GitLab-runner without disrupting normal operations, set a
# a temporary tag on the runner and specify it here too, check
# that it works in a draft MR, and then remove it again.
# For GPU builds, we use specific tags (see variables below)
#
# default:
# tags:
# - scilifelab-k8s-test
variables:
KUBERNETES_CPU_LIMIT: 4
KUBERNETES_CPU_REQUEST: 4
KUBERNETES_MEMORY_REQUEST: 4Gi
KUBERNETES_MEMORY_LIMIT: 8Gi
CACHE_FALLBACK_KEY: "$CI_JOB_NAME-$CI_JOB_STAGE-main"
BUILD_DIR: build
INSTALL_DIR: install
CMAKE_GMXAPI_OPTIONS: ""
# Where to run GPU jobs
GITLAB_RUNNER_TAG_1X_NVIDIA_GPU: "scilifelab-k8s-1x-nvidia-gpu"
GITLAB_RUNNER_TAG_2X_NVIDIA_GPU: "scilifelab-k8s-2x-nvidia-gpu"
GITLAB_RUNNER_TAG_1X_AMD_GPU: "scilifelab-k8s-1x-amd-gpu"
GITLAB_RUNNER_TAG_2X_AMD_GPU: "scilifelab-k8s-2x-amd-gpu"
GITLAB_RUNNER_TAG_1X_INTEL_GPU: "scilifelab-k8s-1x-intel-gpu"
GITLAB_RUNNER_TAG_2X_INTEL_GPU: "scilifelab-k8s-2x-intel-gpu"
# If you set these to 0 or 1, we will skip GPU tests that cannot run
GITLAB_RUNNER_MAX_AVAILABLE_NVIDIA_GPUS: 2
GITLAB_RUNNER_MAX_AVAILABLE_AMD_GPUS: 2
GITLAB_RUNNER_MAX_AVAILABLE_INTEL_GPUS: 2
# Declare and sequence the stages to which jobs may be assigned.
# The pipeline is organized into stages so that if early stages fail
# the later ones are not run.
stages:
# Normal builds for each MR
- pre-build
- configure-build
- build
- test
- documentation
- source-check
- post-test # Linting, docs, static analysis, coverage, code analysis...
# Nightly builds
- nightly-configure
- nightly-build
- nightly-deploy
# Release builds (run nightly with GROMACS_RELEASE is set)
- release-package
- release-configure
- release-build
- release-tests
- release-verify
- release-prepare-deploy
- release-deploy
include:
# Mix-in helper job definitions of general utility.
- local: '/admin/gitlab-ci/global.gitlab-ci.yml'
- local: '/admin/gitlab-ci/rules.gitlab-ci.yml'
# gmxapi Python package.
- local: '/admin/gitlab-ci/python-gmxapi.matrix.gitlab-ci.yml'
# Further API validation and usability of sample gmxapi extension package.
- local: '/admin/gitlab-ci/api-client.matrix.gitlab-ci.yml'
# Build and test GROMACS in a variety of environments and configurations.
# To do: Consider expanding matrix here to improve transparency and reduce file sizes.
# E.g. '/admin/gitlab-ci/matrix/clang-8.gitlab-ci.yml
- local: '/admin/gitlab-ci/gromacs.gitlab-ci.yml'
- local: '/admin/gitlab-ci/gromacs.matrix.gitlab-ci.yml'
# Repository cleanliness. Source tidiness, linting, and policy compliance.
- local: '/admin/gitlab-ci/lint.gitlab-ci.yml'
# Web page and manual.
- local: '/admin/gitlab-ci/documentation.gitlab-ci.yml'
# Prepare release archives.
- local: '/admin/gitlab-ci/archive.gitlab-ci.yml'