// def dockerTag = env.CHANGE_ID ?: "latest"
def dockerTag = "latest"

pipeline {
    agent any
    stages {
        stage('Test') {
            agent {
                docker {
                    image 'node:alpine'
                    args '-u root:root'
                }
            }
            steps {
                sh '''
                    npm install
                    npm run build-storybook || echo "some test failed"
                '''
            }
        }
        stage('docker build & push') {
            when {
                anyOf{
                    expression {
                        env.CHANGE_ID && env.BRANCH_NAME.startsWith("PR-")
                    }
                    branch pattern: "develop"
                }
            }
            steps {
                sh """
                    DOCKER_BUILDKIT=1 docker build -t uicomponent:latest .
                    docker tag uicomponent:latest 934101271236.dkr.ecr.us-west-2.amazonaws.com/uicomponent:${dockerTag}
                    docker push 934101271236.dkr.ecr.us-west-2.amazonaws.com/uicomponent:${dockerTag}
                """
            }
        }
        stage('publish') {
            when {
                anyOf{
                    expression {
                        // True for pull requests, false otherwise.
                        env.CHANGE_ID && env.BRANCH_NAME.startsWith("PR-")
                    }
                    branch pattern: "develop"
                }
            }
            steps {
                sh """
                    export KUBECONFIG=/var/lib/jenkins/.kube/aws-006.yaml
                    helm3 version
                    helm3 upgrade --install \
                        --debug \
                        --namespace dev4 \
                        --set image.tag=${dockerTag} \
                        -f ./chart/values.yaml \
                        genuis \
                        oci://registry-1.docker.io/bitnamicharts/nginx
                """
            }
        }
    }
}
