DEV Community

Ehtesham Ali
Ehtesham Ali

Posted on

Jenkins with PHP – Run Your First Pipeline

Introduction

Jenkins is a widely used open-source automation server that helps automate tasks such as building, testing, and deploying software. In this blog post, we'll walk you through setting up Jenkins with PHP, guiding you through running your first pipeline for both a simple "Hello, World!" example and running a PHP project from a Git repository using Jenkins.

Prerequisites

Before you begin, make sure you have:

  • Jenkins installed: You can download it from the official Jenkins website.
  • PHP installed on your machine
  • Git installed: Git is required to fetch projects from a Git repository. You can install Git from here.
  • Jenkins PHP plugin: You may need the Jenkins PHP plugin to run PHP scripts. Make sure it's installed on your Jenkins instance.

Step 1: Create a Simple "Hello, World!" Pipeline in Jenkins

We'll start with a basic "Hello, World!" pipeline to familiarize ourselves with the Jenkinsfile syntax.

1.1 Create a New Jenkins Job

  • Open Jenkins in your browser.
  • Click on New Item.
  • Choose Pipeline and give it a name, e.g., hello-world-pipeline.
  • Click OK.

1.2 Configure the Pipeline

Scroll down to the Pipeline section.
In the Definition field, select Pipeline script.
Paste the following simple pipeline code into the script box:
groovy

pipeline {
    agent any
    stages {
        stage('Hello') {
            steps {
                script {
                    echo 'Hello, World!'
                }
            }
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

1.3 Save and Build

  • Click Save and then click Build Now.
  • You should see the output "Hello, World!" in the Jenkins console.

This simple pipeline script contains a single stage that outputs the string Hello, World! in the Jenkins console.

Step 2: Run a PHP Project from GitHub with Jenkins Pipeline

Next, we will extend our pipeline to checkout code from a GitHub repository and run a PHP script.

2.1 Create a GitHub Repository

If you don't have one yet, create a simple PHP file in a GitHub repository. Here's an example index.php file:

<?php
echo 'helloworld';
?>
Enter fullscreen mode Exit fullscreen mode

Push this file to a repository (e.g., hello-php-jenkins) on GitHub.

2.2 Create a New Jenkins Job for Your PHP Project

  • In Jenkins, click on New Item.
  • Select Pipeline and name it php-git-pipeline.
  • Click OK.

2.3 Configure the Pipeline to Checkout and Run the PHP Script

In the Pipeline section, choose Pipeline script.
Replace the default pipeline script with the following code:

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/Ehteshamali1109/hello-php-jenkins'
            }
        }
        stage('Run PHP') {
            steps {
                script {
                    // Use 'powershell' to run the PHP script on Windows
                    powershell 'php index.php'
                }
            }
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

2.4 Explanation of the Pipeline Code

  • Checkout Stage: This stage checks out the code from the GitHub repository. You can specify the branch you want to pull (in this case, main).
  • Run PHP Stage: After checking out the code, this stage uses the powershell command to run the index.php script using the PHP command-line interface (php).

Note: On Linux, you would replace powershell with sh to execute the PHP command.

2.5 Save and Build

  • Click Save and then click Build Now.
  • Jenkins will fetch the repository, run the PHP script, and you should see the output helloworld in the console.

Conclusion

Congratulations! You've successfully created two Jenkins pipelines:

A basic "Hello, World!" pipeline that simply prints a message.
A PHP Git pipeline that checks out a PHP project from GitHub and runs a PHP script.
By following these steps, you now have the foundation to create more complex PHP-based pipelines with Jenkins. This is just the beginning, and you can integrate testing, deployment, and other automation tasks into your Jenkins pipeline as needed.

Happy Jenkins-ing!

Top comments (0)