name: Standard CI Test for kas application
author: Jeff Kim
description: 'Standard CI Test for kas application'
inputs:
  kube-version:
    description: 'kube version'
    required: false
    default: 'v1.20.0'
  helm-version:
    description: 'helm client version'
    required: false
    default: 'v3.7.2'
  gx-helm-s3-repo:
    description: 'groundx common helm chart repo name - gx-helm-chart-stable'
    required: false
    default: 'gx-helm-chart-stable'
  chart:
    description: 'project helm chart path'
    required: true
    default: 'fixtures/helm-chart/chart'
  release-name:
    description: 'project release name'
    required: true
    default: 'gx-project'
  namespace:
    description: 'project release namespace'
    required: true
    default: 'default'
  timeout:
    description: 'project release timeout'
    required: false
    default: '15m'
  chart-values:
    description: 'comma seperated chart values path'
    required: true
    default: 'values.yaml'
  values-to-override:
    description: 'comma seperated values to override'
    required: false
    default: ''

runs:
  using: "composite"
  steps:
    - uses: azure/setup-kubectl@v3
      with:
        version: ${{ inputs.kube-version }}
      id: setup-kube
    - uses: azure/setup-helm@v4.2.0
      with:
        version: ${{ inputs.helm-version }}
      id: setup-helm
    - name: helm client init
      shell: bash
      run: |
        helm plugin install https://github.com/hypnoglow/helm-s3.git
        helm repo add gx-helm-chart-stable s3://${{ inputs.gx-helm-s3-repo }}/charts
        helm repo update
    - name: upgrade or install helm chart
      shell: bash
      run: |
        helm upgrade --install ${{ inputs.release-name }} ${{ inputs.chart }} --namespace ${{ inputs.namespace }} --wait --atomic \
        --timeout ${{ inputs.timeout }} \
        --values ${{ inputs.chart-values }} \
        --set ${{ inputs.values-to-override }}
