# 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}