From 02d86266df3e18ac3bee245cd8702fe634f542e4 Mon Sep 17 00:00:00 2001 From: Artsiom Siamashka Date: Tue, 16 Sep 2025 17:04:41 +0200 Subject: [PATCH 1/8] Added Dockerfile and jenkins pipeline --- Dockerfile | 15 +++++++++++++++ Jenkinsfile | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 Dockerfile create mode 100644 Jenkinsfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a736e39 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +# Base image +FROM composer:2.6.4 AS base + +COPY . /src +WORKDIR /src +RUN composer install --no-dev --optimize-autoloader + +FROM wordpress:6.1.1-php8.2 AS livecarta_wp +ARG ENV_NAME +COPY --from=base /src/htdocs /var/www/html +COPY --from=base /src/environments/docker_container/ /var/www/html/ +COPY --from=base /src/environments/all/ /var/www/html/ +COPY --from=base /src/environments/${ENV_NAME}/robots.txt /var/www/html/robots.txt + +RUN chown -R www-data:www-data /var/www/html/ diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..336c909 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,50 @@ +pipeline { + agent any + + parameters { + choice( + name: 'ENVIRONMENT', + choices: ['dev', 'qa', 'new_prod', 'demo'], + description: 'Environment Name for the application (e.g., dev, production etc.)' + ) + } + + stages { + stage('Build Base QA Docker Image') { + when { + branch 'qa' + } + steps { + sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_wp:qa ." + sh 'docker push 10.50.10.93:5000/livecarta_base:qa_test' + } + } + stage('Build Base DEV Docker Image') { + when { + branch 'develop' + } + steps { + sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_base:dev ." + sh 'docker push 10.50.10.93:5000/livecarta_base:dev' + } + } + stage('Build Base PROD Docker Image') { + when { + branch 'master' + } + steps { + sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_base:prod ." + sh 'docker push 10.50.10.93:5000/livecarta_base:prod' + } + } + stage('Build Base WL Docker Image') { + when { + branch 'wl' + } + steps { + sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_base:wl ." + sh 'docker push 10.50.10.93:5000/livecarta_base:wl' + } + } + } +} \ No newline at end of file From ed71e9c86d0af01555929f1e5ce09424bbd38ebd Mon Sep 17 00:00:00 2001 From: Artsiom Siamashka Date: Wed, 17 Sep 2025 11:15:21 +0200 Subject: [PATCH 2/8] Fixed image naming --- Jenkinsfile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 336c909..e2a1173 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -16,7 +16,7 @@ pipeline { } steps { sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_wp:qa ." - sh 'docker push 10.50.10.93:5000/livecarta_base:qa_test' + sh 'docker push 10.50.10.93:5000/livecarta_wp:qa' } } stage('Build Base DEV Docker Image') { @@ -24,8 +24,8 @@ pipeline { branch 'develop' } steps { - sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_base:dev ." - sh 'docker push 10.50.10.93:5000/livecarta_base:dev' + sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_wp:dev ." + sh 'docker push 10.50.10.93:5000/livecarta_wp:dev' } } stage('Build Base PROD Docker Image') { @@ -33,8 +33,8 @@ pipeline { branch 'master' } steps { - sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_base:prod ." - sh 'docker push 10.50.10.93:5000/livecarta_base:prod' + sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_wp:prod ." + sh 'docker push 10.50.10.93:5000/livecarta_wp:prod' } } stage('Build Base WL Docker Image') { @@ -42,8 +42,8 @@ pipeline { branch 'wl' } steps { - sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_base:wl ." - sh 'docker push 10.50.10.93:5000/livecarta_base:wl' + sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_wp:wl ." + sh 'docker push 10.50.10.93:5000/livecarta_wp:wl' } } } From 30e77947f60687f5883e98a360fd6351a80609d2 Mon Sep 17 00:00:00 2001 From: Artsiom Siamashka Date: Thu, 25 Sep 2025 19:13:57 +0200 Subject: [PATCH 3/8] Removed redundant steps, parametrized image name, set tmp image tag --- Jenkinsfile | 41 ++++++++--------------------------------- 1 file changed, 8 insertions(+), 33 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e2a1173..5f591ce 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,41 +9,16 @@ pipeline { ) } + environment { + // LC_IMG_TAG = "${mapBranchToEnv(env.BRANCH_NAME)}" + LC_IMG_TAG = 'qa_test' + } + stages { - stage('Build Base QA Docker Image') { - when { - branch 'qa' - } + stage('Build') { steps { - sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_wp:qa ." - sh 'docker push 10.50.10.93:5000/livecarta_wp:qa' - } - } - stage('Build Base DEV Docker Image') { - when { - branch 'develop' - } - steps { - sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_wp:dev ." - sh 'docker push 10.50.10.93:5000/livecarta_wp:dev' - } - } - stage('Build Base PROD Docker Image') { - when { - branch 'master' - } - steps { - sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_wp:prod ." - sh 'docker push 10.50.10.93:5000/livecarta_wp:prod' - } - } - stage('Build Base WL Docker Image') { - when { - branch 'wl' - } - steps { - sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t 10.50.10.93:5000/livecarta_wp:wl ." - sh 'docker push 10.50.10.93:5000/livecarta_wp:wl' + sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t ${env.PUSH_REGISTRY}/${LC_WP_IMG}:${LC_IMG_TAG} ." + sh 'docker push ${env.PUSH_REGISTRY}/${LC_WP_IMG}:${LC_IMG_TAG}' } } } From 7bfb9bdf893fb4ab8a6569c2ac7a8c02b6a78c37 Mon Sep 17 00:00:00 2001 From: Artsiom Siamashka Date: Thu, 25 Sep 2025 19:21:09 +0200 Subject: [PATCH 4/8] Fixed img name variable usage --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5f591ce..461be16 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -17,8 +17,8 @@ pipeline { stages { stage('Build') { steps { - sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t ${env.PUSH_REGISTRY}/${LC_WP_IMG}:${LC_IMG_TAG} ." - sh 'docker push ${env.PUSH_REGISTRY}/${LC_WP_IMG}:${LC_IMG_TAG}' + sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t ${env.PUSH_REGISTRY}/${env.LC_WP_IMG}:${LC_IMG_TAG} ." + sh 'docker push ${env.PUSH_REGISTRY}/${env.LC_WP_IMG}:${LC_IMG_TAG}' } } } From 6245e522ba19c62aefbc793c8a75f0b05690a08d Mon Sep 17 00:00:00 2001 From: Artsiom Siamashka Date: Thu, 25 Sep 2025 19:25:49 +0200 Subject: [PATCH 5/8] Included folder properties to inject base env variables --- Jenkinsfile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 461be16..8669966 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,12 @@ +@Library('utils') _ + pipeline { agent any + options { + withFolderProperties() + } + parameters { choice( name: 'ENVIRONMENT', @@ -10,7 +16,7 @@ pipeline { } environment { - // LC_IMG_TAG = "${mapBranchToEnv(env.BRANCH_NAME)}" + // LC_IMG_TAG = "${utils.mapBranchToEnv(env.BRANCH_NAME)}" LC_IMG_TAG = 'qa_test' } From 84917a95d3dae939cb62e58c46dc27351d89c9fb Mon Sep 17 00:00:00 2001 From: Artsiom Siamashka Date: Thu, 25 Sep 2025 19:29:47 +0200 Subject: [PATCH 6/8] Fixed push step --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8669966..960b65e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -24,7 +24,7 @@ pipeline { stage('Build') { steps { sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t ${env.PUSH_REGISTRY}/${env.LC_WP_IMG}:${LC_IMG_TAG} ." - sh 'docker push ${env.PUSH_REGISTRY}/${env.LC_WP_IMG}:${LC_IMG_TAG}' + sh "docker push ${env.PUSH_REGISTRY}/${env.LC_WP_IMG}:${LC_IMG_TAG}" } } } From 5f19f89b2f3a7c25b3aa2c8d713443767fef8090 Mon Sep 17 00:00:00 2001 From: Artsiom Siamashka Date: Sat, 27 Sep 2025 10:51:37 +0200 Subject: [PATCH 7/8] Removed env param and replaced with mapping function --- Jenkinsfile | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 960b65e..2e25405 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,5 +1,16 @@ @Library('utils') _ +def mapBranchNameToWPEnv(branchName) { + def envMap = [ + master: 'new_prod', + main: 'new_prod', + develop: 'dev', + qa: 'qa', + demo: 'demo' + ] + return envMap.get(branchName, 'development') +} + pipeline { agent any @@ -7,23 +18,16 @@ pipeline { withFolderProperties() } - parameters { - choice( - name: 'ENVIRONMENT', - choices: ['dev', 'qa', 'new_prod', 'demo'], - description: 'Environment Name for the application (e.g., dev, production etc.)' - ) - } - environment { // LC_IMG_TAG = "${utils.mapBranchToEnv(env.BRANCH_NAME)}" LC_IMG_TAG = 'qa_test' + WP_ENV = "${mapBranchNameToWPEnv(env.BRANCH_NAME)}" } stages { stage('Build') { steps { - sh "docker build --build-arg ENV_NAME=${params.ENVIRONMENT} -t ${env.PUSH_REGISTRY}/${env.LC_WP_IMG}:${LC_IMG_TAG} ." + sh "docker build --build-arg ENV_NAME=${WP_ENV} -t ${env.PUSH_REGISTRY}/${env.LC_WP_IMG}:${LC_IMG_TAG} ." sh "docker push ${env.PUSH_REGISTRY}/${env.LC_WP_IMG}:${LC_IMG_TAG}" } } From 6877774d1e66f86c362487baa487d23975437878 Mon Sep 17 00:00:00 2001 From: Artsiom Siamashka Date: Thu, 2 Oct 2025 13:23:38 +0200 Subject: [PATCH 8/8] Change domains for qa env to migrate --- environments/qa/wp-config-local.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/environments/qa/wp-config-local.php b/environments/qa/wp-config-local.php index f740488..abc93a5 100644 --- a/environments/qa/wp-config-local.php +++ b/environments/qa/wp-config-local.php @@ -5,9 +5,9 @@ define( 'DB_USER', '@lcWpMySqlUsernameQA@' ); define( 'DB_PASSWORD', '@lcWpMySqlPasswordQA@' ); define( 'DB_HOST', '@lcWpMySqlHostQA@' ); -define('DOMAIN_CURRENT_SITE', 'qa.livecarta.com'); +define('DOMAIN_CURRENT_SITE', 'qa116.livecarta.com'); -define('LAWCARTA_SUBDOMAIN', 'app-qa'); +define('LAWCARTA_SUBDOMAIN', 'app-qa116'); define('LAWCARTA_PORT', ''); define('LAWCARTA_ENVIRONMENT_NAME', 'qa');