From a3244fc019832f97303b1ae4d40cf379075d6a2b Mon Sep 17 00:00:00 2001 From: Michel ten Voorde Date: Tue, 5 Nov 2024 15:37:49 +0100 Subject: [PATCH] Added test environment --- Dockerfile-test | 16 ++++++++++ Jenkinsfile | 84 ++++++++++++++++++++++++------------------------- 2 files changed, 58 insertions(+), 42 deletions(-) create mode 100644 Dockerfile-test diff --git a/Dockerfile-test b/Dockerfile-test new file mode 100644 index 0000000..2553468 --- /dev/null +++ b/Dockerfile-test @@ -0,0 +1,16 @@ +FROM node:20.13.1-alpine3.19 as build +WORKDIR /app/src +COPY package*.json ./ +RUN apk update +RUN apk add yarn +RUN yarn install --frozen-lockfile --no-progress +COPY . ./ +RUN yarn build --configuration test + +FROM node:20.13.1-alpine3.19 +RUN addgroup -S k8s-group && adduser -S k8s-user -G k8s-group +USER root +WORKDIR /usr/app +COPY --from=build /app/src/dist/swiss-client/ ./ +CMD node server/server.mjs +EXPOSE 4000 diff --git a/Jenkinsfile b/Jenkinsfile index 392bafb..c8694c1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -13,47 +13,47 @@ pipeline { // 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') { + 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 { @@ -70,7 +70,7 @@ pipeline { stage('Docker Build test') { steps { - sh 'docker build -t upquark/swiss-client-test:latest -t upquark/swiss-client-test:${BUILD_NUMBER} .' + sh 'docker build -t upquark/swiss-client-test:latest -t upquark/swiss-client-test:${BUILD_NUMBER} -f Dockerfile-test .' } }