Modify Jenkinsfile to publish images
parent
835d461585
commit
73fbd6b6f6
|
@ -1,33 +1,75 @@
|
|||
pipeline {
|
||||
agent {
|
||||
node {
|
||||
label 'jenkins-slave'
|
||||
}
|
||||
}
|
||||
|
||||
environment {
|
||||
DOCKER_REPO = "opengnsys"
|
||||
DOCKER_CREDENTIALS = credentials('docker-hub-credentials')
|
||||
DOCKER_TAG = "${env.BUILD_NUMBER}"
|
||||
DOCKER_IMAGE_NAME = "ogcore"
|
||||
BRANCH_NAME = "${GIT_BRANCH.split("/")[1]}"
|
||||
DOCKER_IDENTITY = "${DOCKER_REPO}/${DOCKER_IMAGE_NAME}-php:${BRANCH_NAME}-${DOCKER_TAG}"
|
||||
DOCKER_IDENTITY_NGINX = "${DOCKER_REPO}/${DOCKER_IMAGE_NAME}-nginx:${BRANCH_NAME}-${DOCKER_TAG}"
|
||||
DOCKER_COMPOSE_TEMPLATE = 'docker-compose-ci-template.yaml'
|
||||
DOCKER_COMPOSE_FILE = 'docker-compose-ci-tmp.yaml'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Build Environmen') {
|
||||
steps {
|
||||
//Build environment
|
||||
sh 'docker compose -f docker-compose-ci.yaml up --build -d'
|
||||
script {
|
||||
app = docker.build("${DOCKER_IDENTITY}", '-f docker/Dockerfile-php .')
|
||||
nginx = docker.build("${DOCKER_IDENTITY_NGINX}", '-f docker/Dockerfile-nginx .')
|
||||
}
|
||||
}
|
||||
}
|
||||
stage(('Prepare Docker Composer')) {
|
||||
steps {
|
||||
sh """
|
||||
sed 's|ogcore-php:static|${DOCKER_IDENTITY}|g; s|ogcore-nginx:static|${DOCKER_IDENTITY_NGINX}|g' ${DOCKER_COMPOSE_TEMPLATE} > ${DOCKER_COMPOSE_FILE}
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
stage('Run containers') {
|
||||
steps {
|
||||
sh """
|
||||
docker compose -f ${DOCKER_COMPOSE_FILE} up -d
|
||||
"""
|
||||
}
|
||||
}
|
||||
stage('Install dependencies') {
|
||||
steps {
|
||||
// Install dependencies
|
||||
sh 'docker exec ogcore-php composer install'
|
||||
sh 'docker exec ogcore-php php bin/console lexik:jwt:generate-keypair --overwrite'
|
||||
sh 'docker exec ogcore-php php bin/console doctrine:migrations:migrate --no-interaction'
|
||||
sh 'docker exec ogcore-php php bin/console doctrine:fixtures:load --no-interaction'
|
||||
sh """
|
||||
docker compose exec php composer install
|
||||
docker compose exec php php bin/console lexik:jwt:generate-keypair --overwrite
|
||||
docker compose exec php php bin/console doctrine:migrations:migrate --no-interaction
|
||||
docker compose exec php php bin/console doctrine:fixtures:load --no-interaction
|
||||
// Create report directory
|
||||
sh 'docker exec ogcore-php mkdir -p /report'
|
||||
docker compose exec php mkdir -p /report
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
stage('Tests') {
|
||||
steps {
|
||||
// Run tests
|
||||
sh 'docker compose exec php bin/phpunit --log-junit /report/phpunit.xml'
|
||||
sh 'docker cp ogcore-php:/report/phpunit.xml .'
|
||||
sh """
|
||||
docker compose exec php bin/phpunit --log-junit /report/phpunit.xml
|
||||
docker compose cp php:/report/phpunit.xml ./phpunit.xml
|
||||
"""
|
||||
}
|
||||
post {
|
||||
sucess {
|
||||
script {
|
||||
docker.withRegistry('https://index.docker.io/v1/', "${DOCKER_CREDENTIALS}") {
|
||||
app.push()
|
||||
nginx.push()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
services:
|
||||
database:
|
||||
container_name: ogcore-database
|
||||
image: mariadb:10.11
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
MYSQL_DATABASE: ogcore
|
||||
MYSQL_PASSWORD: root
|
||||
MYSQL_USER: admin
|
||||
ports:
|
||||
- 3336:3306
|
||||
volumes:
|
||||
- database_data:/var/lib/mysql
|
||||
networks:
|
||||
- ogcore-network
|
||||
|
||||
nginx:
|
||||
container_name: ogcore-nginx
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/Dockerfile-nginx
|
||||
depends_on:
|
||||
- php
|
||||
ports:
|
||||
- 8080:80
|
||||
volumes:
|
||||
- ./public:/var/www/html/public:cached
|
||||
networks:
|
||||
- ogcore-network
|
||||
image: ogcore-nginx:static
|
||||
|
||||
php:
|
||||
container_name: ogcore-php
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/Dockerfile-jenkins-php
|
||||
depends_on:
|
||||
- database
|
||||
environment:
|
||||
XDEBUG_CLIENT_HOST: 127.17.0.1
|
||||
XDEBUG_CLIENT_PORT: 9003
|
||||
PHP_IDE_CONFIG: serverName=ogcore
|
||||
networks:
|
||||
- ogcore-network
|
||||
image: ogcore-php:static
|
||||
|
||||
volumes:
|
||||
database_data:
|
||||
|
||||
networks:
|
||||
ogcore-network:
|
Loading…
Reference in New Issue