cicid/Jenkinfile
2024-11-05 10:31:53 +00:00

87 lines
2.3 KiB
Plaintext

pipeline {
agent any
environment {
DOCKER_IMAGE = 'jassimsm/documentation'
DOCKER_TAG = 'latest'
REGISTRY_CREDENTIALS = 'docker-credentials'
SSH_CREDENTIALS = 'documentation'
}
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://git.tech4biz.wiki/jassim/cicid.git'
}
}
stage('Install Dependencies') {
steps {
sh 'yarn install'
}
}
stage('Build Documentation') {
steps {
sh 'yarn build'
}
}
stage('Build Docker Image') {
steps {
script {
docker.build("${DOCKER_IMAGE}:${DOCKER_TAG}")
}
}
}
stage('Push Docker Image') {
steps {
script {
docker.withRegistry('https://index.docker.io/v1/', REGISTRY_CREDENTIALS) {
docker.image("${DOCKER_IMAGE}:${DOCKER_TAG}").push()
}
}
}
}
stage('Deploy') {
steps {
script {
sshagent(credentials: [SSH_CREDENTIALS]) {
sh '''
ssh user@160.187.166.47 << EOF
docker pull ${DOCKER_IMAGE}:${DOCKER_TAG}
docker documentation-container || true
docker rm documentation-container || true
docker run -d -p 3000:3000 --name documentation-container ${DOCKER_IMAGE}:${DOCKER_TAG}
EOF
'''
}
}
}
}
stage('Update Nginx Configuration') {
steps {
script {
sshagent(credentials: [SSH_CREDENTIALS]) {
sh '''
ssh user@160.187.166.47 << EOF
sudo nginx -t
sudo systemctl reload nginx
EOF
'''
}
}
}
}
}
post {
always {
cleanWs()
}
}
}