labels:
  type: exec
  platform: linux/amd64

steps:
- name: publish-charts
  image: bash
  commands:
  - export VERSION=$(sed 's#v##' <<< $CI_COMMIT_TAG)
  - export IMAGE_TAG=$([ ! -z $CI_COMMIT_TAG ] && echo \"$VERSION\" || echo \"canary\")
  - export APP_VERSION=$([ -z $CI_COMMIT_TAG ] && echo $CI_COMMIT_SHA || echo $VERSION)
  - export CHART_VERSION=$([ -z $CI_COMMIT_TAG ] && echo 1.0.0 || echo $VERSION)
  - sed -i s#{{repository}}#oci://$DRYCC_REGISTRY/$([ -z $CI_COMMIT_TAG ] && echo charts-testing || echo charts)#g charts/$${CI_REPO_NAME}/Chart.yaml
  - helm dependency update charts/$${CI_REPO_NAME}
  - helm package -u charts/$${CI_REPO_NAME} --version $CHART_VERSION --app-version $APP_VERSION
  - echo $CONTAINER_PASSWORD | helm registry login $DRYCC_REGISTRY -u $CONTAINER_USERNAME --password-stdin
  - helm push $${CI_REPO_NAME}-$CHART_VERSION.tgz oci://$DRYCC_REGISTRY/$([ -z $CI_COMMIT_TAG ] && echo charts-testing || echo charts)
  - bash _scripts/generate_cache.sh 
  environment:
    DRYCC_REGISTRY:
      from_secret: drycc_registry
    CONTAINER_USERNAME:
      from_secret: container_username
    CONTAINER_PASSWORD:
      from_secret: container_password
  when:
    event:
    - tag
    - push
    - cron
