// This Jenkinsfile defines a declarative pipeline pipeline { tools { nodejs 'node' } options { disableConcurrentBuilds() } agent any // Defines the sequence of stages that will be executed stages { // This stage checks out the source code from the SCM (Source Code Management) system // stage('Checkout') { // steps { // // This command checks out the source code from the SCM into the Jenkins workspace // checkout scm // } // } // stage('Build') { // steps { // sh 'yarn install --no-progress' // sh 'npm run ng build --prod' // } // } // // stage('Docker Build') { // steps { // sh 'docker build -t upquark/swiss-client:latest -t upquark/swiss-client:${BUILD_NUMBER} .' // } // } // // stage('Push the Docker Image to DockerHub') { // steps { // script { // withCredentials([string(credentialsId: 'c7783e4f-2f79-482f-885f-dfb39f8c02d3', variable: 'docker_hub')]) { // sh 'docker login -u upquark -p ${docker_hub}' // } // sh 'docker push upquark/swiss-client:latest' // sh 'docker push upquark/swiss-client:${BUILD_NUMBER}' // } // } // } // // stage('Deploy to Kubernetes') { // steps { // script { // kubeconfig(credentialsId: 'k3s-kubeconfig') { // sh 'cat k8s/deployment.yaml | sed "s/latest/$BUILD_NUMBER/g" | kubectl apply -n swiss -f -' // sh 'kubectl apply -f k8s/service.yaml -n swiss' // } // } // } // } stage('Checkout test') { steps { // This command checks out the source code from the SCM into the Jenkins workspace checkout scm } } stage('Build test') { steps { sh 'yarn install --no-progress' sh 'ng build --configuration test' } } stage('Docker Build test') { steps { sh 'docker build -t upquark/swiss-client-test:latest -t upquark/swiss-client-test:${BUILD_NUMBER} .' } } stage('Push the Docker Image to DockerHub test') { steps { script { withCredentials([string(credentialsId: 'c7783e4f-2f79-482f-885f-dfb39f8c02d3', variable: 'docker_hub')]) { sh 'docker login -u upquark -p ${docker_hub}' } sh 'docker push upquark/swiss-client-test:latest' sh 'docker push upquark/swiss-client-test:${BUILD_NUMBER}' } } } stage('Deploy to Kubernetes test') { steps { script { kubeconfig(credentialsId: 'k3s-kubeconfig') { sh 'cat k8s/deployment-test.yaml | sed "s/latest/$BUILD_NUMBER/g" | kubectl apply -n swiss -f -' sh 'kubectl apply -f k8s/service-test.yaml -n swiss' } } } } } }