Files
LaravelSkeletonAPI/Jenkinsfile
2026-01-05 16:33:20 +04:00

59 lines
1.6 KiB
Groovy

pipeline {
agent any
environment {
API_TOKEN = credentials('04f8a5d4-19fc-4ab3-979e-35bbb5b64611')
ENV_FILE = '/usr/local/share/environment/api.env'
COMPOSE_FILE = 'src/deploy/main/docker-compose.yaml'
PHP_CONTAINER = 'project-php'
}
stages {
stage('Clean') {
steps {
cleanWs()
}
}
stage('Clone') {
steps {
sh """
git clone https://gitea.diffteam.online/PHP/LaravelSkeletonAPI.git src
"""
}
}
stage('Environment') {
steps {
sh """
if [ -f "${ENV_FILE}" ]; then
cp "${ENV_FILE}" src/.env
echo ".env file copied successfully"
else
echo "ERROR: .env file not found at ${ENV_FILE}"
exit 1
fi
"""
}
}
stage('Build') {
steps {
sh """
docker compose --env-file src/.env -f "${COMPOSE_FILE}" build
"""
}
}
stage('Deploy') {
steps {
sh """
docker compose --env-file src/.env -f "${COMPOSE_FILE}" down --remove-orphans
docker compose --env-file src/.env -f "${COMPOSE_FILE}" up -d
docker exec "${PHP_CONTAINER}" php artisan migrate --force
docker exec "${PHP_CONTAINER}" php artisan optimize
"""
}
}
}
}