# Copyright 2024 ETSI
#
# 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.

stages:
  - build

variables:
  HELM_EXPERIMENTAL_OCI: 1

build-job:
  stage: build
  before_script:
    - apt-get update && apt-get install -y curl tar gzip
    - curl -LO https://get.helm.sh/helm-v3.15.1-linux-amd64.tar.gz
    - tar -zxvf helm-v3.15.1-linux-amd64.tar.gz
    - mv linux-amd64/helm /usr/local/bin/helm
    - helm version
  script:
    - helm dep update installers/helm/osm/
    - helm package installers/helm/osm/
    - echo $CI_JOB_TOKEN | helm registry login $CI_REGISTRY --username gitlab-ci-token --password-stdin
    - helm push osm-*.tgz oci://$CI_REGISTRY/osm/devops
  only:
    - tags