-
Notifications
You must be signed in to change notification settings - Fork 32
/
.gitlab-ci.yml
108 lines (95 loc) · 2.8 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
include:
- local: '.common-ci.yml'
# Define the image build targets
.image-build-generic:
stage: image-build
variables:
IMAGE_NAME: "${CI_REGISTRY_IMAGE}"
VERSION: "${CI_COMMIT_SHORT_SHA}"
OUT_VERSION: "${CI_COMMIT_SHORT_SHA}"
PUSH_ON_BUILD: "true"
before_script:
- !reference [.buildx-setup, before_script]
- !reference [.regctl-setup, before_script]
- apk add --no-cache bash make
- 'echo "Logging in to CI registry ${CI_REGISTRY}"'
- docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
script:
- if [[ "${PRECOMPILED}" == "true" ]]; then ./scripts/precompiled.sh build; else make build-${DIST}-${DRIVER_VERSION}; fi
.image-build:
# Perform for each DRIVER_VERSION
extends:
- .driver-versions
- .image-build-generic
rules:
- if: $CI_PIPELINE_SOURCE != "schedule"
# Define the image build targets
.image-build-ubuntu22.04:
# Perform for each DRIVER_VERSION
extends:
- .driver-versions
- .image-build-generic
rules:
- if: $CI_PIPELINE_SOURCE != "schedule"
# Define the image build targets
.image-build-rhel9:
# Perform for each DRIVER_VERSION
extends:
- .driver-versions
- .image-build-generic
rules:
- if: $CI_PIPELINE_SOURCE != "schedule"
image-ubuntu20.04:
extends:
- .image-build
- .dist-ubuntu20.04
image-ubuntu22.04:
extends:
- .image-build-ubuntu22.04
- .dist-ubuntu22.04
image-rhel8:
extends:
- .image-build
- .dist-rhel8
image-rhel9:
extends:
- .image-build-rhel9
- .dist-rhel9
image-fedora36:
extends:
- .image-build
- .dist-fedora36
rules:
- !reference [.manual-only, rules]
.image-build-precompiled:
extends:
.image-build-generic
variables:
IN_REGISTRY: "${STAGING_REGISTRY}"
IN_IMAGE_NAME: driver
OUT_REGISTRY_USER: "${CI_REGISTRY_USER}"
OUT_REGISTRY_TOKEN: "${CI_REGISTRY_PASSWORD}"
OUT_REGISTRY: "${CI_REGISTRY}"
OUT_IMAGE_NAME: "${CI_REGISTRY_IMAGE}/staging/driver"
PRECOMPILED: "true"
image-precompiled-ubuntu22.04:
variables:
DIST: signed_ubuntu22.04
BASE_TARGET: jammy
CVE_UPDATES: "curl libc6"
extends:
- .driver-versions-precompiled-ubuntu22.04
- .image-build-precompiled