Skip to content

Commit 3b9dfbe

Browse files
authored
Create Jenkinsfile
added Jenkinsfile to project
1 parent e6ac608 commit 3b9dfbe

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

Jenkinsfile

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
pipeline {
2+
agent any
3+
4+
environment {
5+
DISCORD_WEBHOOK = credentials('discord-webhook')
6+
GIT_URL = 'https://github.com/abbos1711/angular-project-ci-cd-gitlab-and-githubAction.git'
7+
8+
DOCKERHUB_CREDENTIALS = credentials('dockerhub')
9+
CONTAINER_NAME = 'angular'
10+
REGISTRY_URL = '10449'
11+
SERVER_USERNAME = credentials('server-username')
12+
SERVER_IP = credentials('server-ip')
13+
SSH_CREDENTIALS = credentials('server-ssh')
14+
15+
16+
GIT_TOKEN = credentials('git-token')
17+
BRANCH_NAME = 'origin'
18+
// BRANCH_NAME = 'main'
19+
}
20+
stages {
21+
stage('Clean Workspace') {
22+
steps {
23+
cleanWs()
24+
}
25+
}
26+
stage('Clone Repository') {
27+
steps {
28+
git branch: BRANCH_NAME, url: GIT_URL, credentialsId: 'git-token'
29+
}
30+
}
31+
stage('Build Application') {
32+
steps {
33+
withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'DOCKER_USERNAME', passwordVariable: 'DOCKER_PASSWORD')]) {
34+
script {
35+
def dockerlogin = "docker login -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD}"
36+
sh dockerlogin
37+
sh """
38+
docker build . -t ${REGISTRY_URL}/${CONTAINER_NAME}:${BUILD_NUMBER} -f Dockerfile
39+
docker tag ${REGISTRY_URL}/${CONTAINER_NAME}:${BUILD_NUMBER} ${REGISTRY_URL}/${CONTAINER_NAME}:latest
40+
docker push ${REGISTRY_URL}/${CONTAINER_NAME}:latest
41+
docker push ${REGISTRY_URL}/${CONTAINER_NAME}:${BUILD_NUMBER}
42+
docker image rm -f ${REGISTRY_URL}/${CONTAINER_NAME}:latest
43+
docker image rm -f ${REGISTRY_URL}/${CONTAINER_NAME}:${BUILD_NUMBER}
44+
"""
45+
}
46+
}
47+
}
48+
}
49+
stage('Deploy Server') {
50+
steps {
51+
withCredentials([usernamePassword(credentialsId: 'dockerhub', usernameVariable: 'DOCKER_USERNAME', passwordVariable: 'DOCKER_PASSWORD')]) {
52+
script {
53+
sshagent (credentials: ['server-ssh']) {
54+
sh """
55+
ssh -o StrictHostKeyChecking=no ${SERVER_USERNAME}@${SERVER_IP} '\
56+
docker login -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD} && \
57+
docker pull ${REGISTRY_URL}/${CONTAINER_NAME}:latest && \
58+
docker stop ${CONTAINER_NAME} || true && \
59+
docker rm ${CONTAINER_NAME} || true && \
60+
docker run -d -p 5200:5200 --name ${CONTAINER_NAME} --restart always ${REGISTRY_URL}/${CONTAINER_NAME}:latest '
61+
"""
62+
}
63+
}
64+
}
65+
}
66+
}
67+
}
68+
post {
69+
always {
70+
discordSend(
71+
description: "Jenkins Pipeline Build ${currentBuild.currentResult}",
72+
link: env.GIT_URL,
73+
result: currentBuild.currentResult,
74+
title: JOB_NAME,
75+
webhookURL: env.DISCORD_WEBHOOK
76+
)
77+
}
78+
}
79+
}

0 commit comments

Comments
 (0)