Skip to main content

How to set up CI/CD process for WordPress database and code with GitLab and Jenkins?



How to set up CI/CD process for WordPress with GitLab and Jenkins?

Introduction:

GitLab is a web-based Git-repository manager.

WordPress is a free and open-source content management system based on PHP and MySQL.

Jenkins is open source automation server-based system.



1) Integrations GitLab project with Jenkins

Login in your GitLab server and open your project

Go to settings > integrations and add URL of your Jenkins projects.


Jenkins URL will be similar : 
http://username:password@jenkishost:port/project/projectname





Pick any Trigger when you need to build your projects with Jenkins.
You can test webhooks with your event and get HTTP 200 means your
webhook connection is perfect





2) Jenkins Configuration


Before start configuration, you must require to install GitLab plugins from Jenkins Manage Plugins.
Other plugins :  SSH remote hosts (Run command remotely)
Extended E-mail Notification (Email notification)

Next, Create Project job in Jenkins.


  • Source Code Management


In Source Code Management
Add GitLab Repository URL, Credentials and Branches to build (*/branchname "*/master")



  • Build Triggers

Build Triggers (when you perform any event in GitLab (like - Push Events). Then this trigger run).

  • Build



Build > Execute Shell 
and copy your workspace on your project's location 

Add this for only copy files
#!/bin/bash
rsync -a -v -r -d --delete-after /var/lib/jenkins/workspace/Newproject/ /home/projectspath


In WordPress, if you want to add database as well as then add this commands in Execute Shell

If,
source database details: sdbuser, spassword, sdbname
target database details: tdbuser, tpassword, tdbname

mysqldump -u sdbuser -pspassword sdbname  > test.sql
mysql  -u tdbuser -ptpassword tdbname < test.sql

And for change URL in database

mysql -u tdbuser -ptpassword -D tdbname  -e "UPDATE wp_options SET option_value = replace(option_value, 'Old_URL', 'New_URL') WHERE option_name = 'home' OR option_name = 'siteurl'"; 

mysql -u tdbuser -ptpassword -D tdbname  -e "UPDATE wp_posts SET guid = replace(guid, 'Old_URL', 'New_URL')"; 

mysql -u tdbuser -ptpassword -D tdbname  -e "UPDATE wp_posts SET post_content = replace(post_content, 'Old_URL', 'New_URL')"; 

mysql -u tdbuser -ptpassword -D tdbname  -e "UPDATE wp_postmeta SET meta_value = replace(meta_value, 'Old_URL', 'New_URL')";


Save all settings.

Continuous Integration with Jenkins Certification Training

With this settings.

When you will push on GitLab the Jenkins will automatically get your changes in the workspace and after you changed file will move in you protect location with needful WordPress database changes.

Comments

Popular posts from this blog

Apt-fast for Increasing Download Speed while Installing and Updating Packages Ubuntu/Debian [Beginners Guide]

Have you ever experienced slow download speed when downloading or updating packages in Ubuntu even when your network connection is running fine? You encounter this issue especially when updating and installing packages for the first time after installing a new Ubuntu/Debian OS. However, there is a way to get around this by speeding up the download speed using apt-fast command in Linux. Apt-fast is a shell script wrapper for “apt-get” and “aptitude” that uses the power of either  axel  or  aria 2  download managers to accelerate the download process. It improves download performance by downloading packages simultaneously in parallel with multiple packages per connection. In this article, we will walk through some steps to install apt-fast in order to accelerate the update and downloading process in Ubuntu. We will use Ubuntu 18.04 LTS for describing the procedure mentioned in this article.   Step 1: Installing prerequisites We need to install...

What is a CDN ? How Does a content delivery network Work?

I ntroduction. Latest Web sites and applications often need to provide   amount of static content to end users. This content includes images, style sheets, JavaScript, and video. The increase in the number of static assets and the increase grows the bandwidth usage increases page load time decreased, depending on the size of the user's search experience, and reduce the usable capacity of the server. Dramatically improving performance, reducing the page load time   reduce the bandwidth and infrastructure costs, you can implement a content delivery network,  And  CDN cache these assets at a set of servers that are geographically distributed. What is a CDN? Content delivery network is a group of servers distributed geographically optimized to provide static content to end users. While this static content can be almost any type of data, CDNs are most commonly used to deliver web pages and related files, streaming video and audio, and large softwar...

How To Install PHP 7.4 and PHP 7.3 ON Ubuntu 18.04/19.04/16.04

How to Install PHP 7.4 / PHP 7.3 on Ubuntu?. This guide will help you Install PHP 7.4 / PHP 7.3 on Ubuntu 18 / Ubuntu 16 /  Ubuntu 19 . PHP is an open-source server-side scripting language which has been widely adopted for the creation of dynamic web pages. PHP is secure, fast, simple, efficient, flexible and a loosely typed scripting language. The PHP release 7.4.0 has been made available for the general public and for use in Production environments. How to install PHP 7.4 on Ubuntu 18.04 / Ubuntu 19.04 / Ubuntu 16.04 Step 1: Add PHP 7.4 PPA Repository We’ll add ppa:ondrej/php PPA repository which has the latest build packages of PHP. sudo apt-get update sudo apt -y install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update Step 2: Install PHP 7.4 on Ubuntu 18/ Ubuntu 19/ Ubuntu 16 Install PHP 7.4 on Ubuntu 18.04/19.04/16.04 using the command: sudo apt -y install php7.4 Check version inst...