59 lines
1.6 KiB
Groovy
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
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|