mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2024-11-22 16:29:18 +00:00
97 lines
2.8 KiB
YAML
97 lines
2.8 KiB
YAML
|
# Copyright (c) 2020-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.
|
||
|
|
||
|
default:
|
||
|
image: docker
|
||
|
services:
|
||
|
- name: docker:dind
|
||
|
command: ["--experimental"]
|
||
|
|
||
|
variables:
|
||
|
# We specify the LIB_VERSION, TOOLKIT_VERSION, and TOOLKIT_TAG variable to allow packages
|
||
|
# to be built.
|
||
|
LIB_VERSION: 999.999.999
|
||
|
LIB_TAG: dummy+lib
|
||
|
TOOLKIT_VERSION: 999.999.999
|
||
|
TOOLKIT_TAG: dummy+toolkit
|
||
|
|
||
|
# Build packages for all supported OS / ARCH combinations
|
||
|
stages:
|
||
|
- trigger
|
||
|
- build
|
||
|
|
||
|
.pipeline-trigger-rules:
|
||
|
rules:
|
||
|
# We trigger the pipeline if started manually
|
||
|
- if: $CI_PIPELINE_SOURCE == "web"
|
||
|
# We trigger the pipeline on the main branch
|
||
|
- if: $CI_COMMIT_BRANCH == "main"
|
||
|
# We trigger the pipeline on the release- branches
|
||
|
- if: $CI_COMMIT_BRANCH =~ /^release-.*$/
|
||
|
# We trigger the pipeline on tags
|
||
|
- if: $CI_COMMIT_TAG && $CI_COMMIT_TAG != ""
|
||
|
|
||
|
workflow:
|
||
|
rules:
|
||
|
# We trigger the pipeline on a merge request
|
||
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||
|
# We then add all the regular triggers
|
||
|
- !reference [.pipeline-trigger-rules, rules]
|
||
|
|
||
|
# The main or manual job is used to filter out distributions or architectures that are not required on
|
||
|
# every build.
|
||
|
.main-or-manual:
|
||
|
rules:
|
||
|
- !reference [.pipeline-trigger-rules, rules]
|
||
|
- if: $CI_PIPELINE_SOURCE == "schedule"
|
||
|
when: manual
|
||
|
|
||
|
# The trigger-pipeline job adds a manualy triggered job to the pipeline on merge requests.
|
||
|
trigger-pipeline:
|
||
|
stage: trigger
|
||
|
script:
|
||
|
- echo "starting pipeline"
|
||
|
rules:
|
||
|
- !reference [.main-or-manual, rules]
|
||
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
||
|
when: manual
|
||
|
allow_failure: false
|
||
|
- when: always
|
||
|
|
||
|
.build-setup:
|
||
|
stage: build
|
||
|
variables:
|
||
|
ARTIFACTS_NAME: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}-${CI_JOB_NAME}-artifacts-${CI_PIPELINE_ID}"
|
||
|
ARTIFACTS_DIR: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}-artifacts-${CI_PIPELINE_ID}"
|
||
|
DIST_DIR: "${CI_PROJECT_DIR}/${ARTIFACTS_DIR}"
|
||
|
|
||
|
artifacts:
|
||
|
name: ${ARTIFACTS_NAME}
|
||
|
paths:
|
||
|
- ${ARTIFACTS_DIR}
|
||
|
|
||
|
before_script:
|
||
|
- apk update
|
||
|
- apk upgrade
|
||
|
- apk add coreutils build-base sed git bash make
|
||
|
|
||
|
build:
|
||
|
extends:
|
||
|
- .build-setup
|
||
|
parallel:
|
||
|
matrix:
|
||
|
- PACKAGING: [deb, rpm]
|
||
|
script:
|
||
|
- make ${PACKAGING}
|