diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c968107 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM node:22.13.1-bookworm AS build +WORKDIR /build + +COPY package.json package.json +COPY package-lock.json package-lock.json +RUN npm ci + +COPY public/ public +COPY src/ src +RUN npm run build + +FROM httpd:alpine +WORKDIR /usr/local/apache2/htdocs +COPY --from=build /build/build/ . +RUN chown -R www-data:www-data /usr/local/apache2/htdocs \ + && sed -i "s/Listen 80/Listen \${PORT}/g" /usr/local/apache2/conf/httpd.conf \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..23f8f87 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,33 @@ +pipeline { + agent any + stages { + stage('Checkout') { + steps { + git 'http://git.abilityell.com/william/react-project.git' + } + } + stage('Build') { + steps { + sh 'mvn clean package' + } + } + stage('Test') { + steps { + sh 'mvn test' + } + } + stage('Deploy') { + steps { + sh 'kubectl apply -f deployment.yaml' + } + } + } + post { + success { + slackSend(message: "Pipeline succeeded! ✅") + } + failure { + slackSend(message: "Pipeline failed! ❌") + } + } +} \ No newline at end of file