GitLab CI/CD for Spring Boot: Automated Build and Deployment
GitLab CI/CD for Spring Boot helps teams automate build, test, and deployment workflows with confidence. In this guide, you will learn how to create a simple Spring Boot app and deploy it automatically to a cloud server using GitLab pipelines.
Although this example uses DigitalOcean, the same approach works on AWS, Azure, or any cloud provider that supports virtual machines. As a result, the workflow stays portable and future-ready.
At the same time, modern teams often extend this setup with DevOps and Cloud best practices. This is where platforms like ZippyOPS add long-term value through consulting, implementation, and managed services across DevOps, DevSecOps, and Cloud operations.
Why Use GitLab CI/CD for Spring Boot Projects
GitLab CI/CD combines source control and automation in one platform. Therefore, teams can move faster without juggling multiple tools.
Key benefits include:
- Automated builds and testing
- Consistent deployments
- Built-in CI/CD pipelines
- Free private repositories with CI minutes
Moreover, GitLab CI/CD for Spring Boot aligns well with microservices, container-based delivery, and secure infrastructure automation. According to GitLab’s official documentation, CI/CD pipelines significantly reduce deployment risk and lead time .

Step 1: Application Setup for GitLab CICD for Spring Boot
To begin, create a simple Spring Boot application using Spring Initializr. Spring Boot simplifies Java development by providing embedded servers and opinionated defaults.
Choose the Spring Web and Spring Test dependencies. After generating the project, create a controller that exposes a basic endpoint.
@Controller
public class IndexController {
@GetMapping("/")
@ResponseBody
public String index() {
return "Hello World " + LocalDateTime.now();
}
}
Next, start the application on port 8080. You can test it using curl.
curl http://localhost:8080
Once the app works locally, initialize a new GitLab repository and push the code. This repository will later trigger the CI/CD pipeline automatically.
Step 2: Server Setup for Spring Boot Deployment
Now, provision a cloud server. Install the Java Runtime Environment and Nginx.
Nginx acts as a reverse proxy. It listens on port 80 and forwards traffic to the Spring Boot app running on port 8080. Because of this setup, you can expose your application safely and efficiently.
Teams that manage multiple environments often standardize this step using Infrastructure as Code. ZippyOPS supports such cloud and infrastructure automation through its managed services, ensuring stability at scale. Learn more about these capabilities on the ZippyOPS Services page:
https://zippyops.com/services/
Step 3: GitLab CICD for Spring Boot Build Pipeline
To enable GitLab CI/CD for Spring Boot, create a .gitlab-ci.yml file in the project root. This file defines the pipeline stages and jobs.
Start by defining the build and deploy stages.
stages:
- build
- deploy
Next, add a Maven build job.
maven-build:
image: maven:3-jdk-11
stage: build
script: mvn package -B
artifacts:
paths:
- target/gitlab-ci-demo.jar
This job packages the application into a JAR file. In addition, artifacts allow the output to be reused during deployment.
Once committed, GitLab automatically detects the configuration and runs the pipeline.
Step 4: Deployment with GitLab CICD for Spring Boot
Manual deployments slow teams down. Therefore, automated deployment is essential.
First, create a dedicated CI user on the server and allow controlled sudo access. Then, store the user password securely as a GitLab CI/CD variable.
After that, define the deployment job.
deploy-master:
stage: deploy
before_script:
- apt-get update -qq && apt-get install -y -qq sshpass
script:
- export SSHPASS=$CI_USER_PASS
- sshpass -e scp -o StrictHostKeyChecking=no target/gitlab-ci-demo.jar gitlab-ci@SERVER_IP:/home/gitlab-ci
- sshpass -e ssh -tt -o StrictHostKeyChecking=no gitlab-ci@SERVER_IP sudo mv /home/gitlab-ci/gitlab-ci-demo.jar /opt/java/webapps
- sshpass -e ssh -tt -o StrictHostKeyChecking=no gitlab-ci@SERVER_IP sudo systemctl restart gitlab-ci-demo.service
As a result, every successful build can deploy automatically to the server.
Controlling Deployments in GitLab CI/CD for Spring Boot
In many cases, teams want deployments only from the main branch. Fortunately, GitLab makes this easy.
Add rules to the deployment job so it runs only on master.
rules:
- if: '$CI_COMMIT_BRANCH =~ /^master$/'
Consequently, feature branches trigger builds but not deployments. This approach supports safer release workflows.
Scaling GitLab CI/CD with ZippyOPS Expertise
As applications grow, CI/CD pipelines become more complex. This is especially true for microservices, security scanning, and data-driven systems.
ZippyOPS helps teams extend GitLab CI/CD for Spring Boot with:
- DevOps and DevSecOps automation
- Secure CI/CD pipelines
- Cloud-native microservices
- DataOps, AIOps, and MLOps integration
- Automated infrastructure and security controls
You can explore these solutions in detail here:
https://zippyops.com/solutions/
https://zippyops.com/products/
For hands-on demos and walkthroughs, visit the ZippyOPS YouTube channel:
https://www.youtube.com/@zippyops8329
Conclusion: GitLab CI/CD for Spring Boot Made Practical
GitLab CI/CD for Spring Boot enables reliable automation from code commit to production deployment. With a simple pipeline, you can reduce manual work and improve delivery speed.
In summary, this approach lays a strong DevOps foundation. When combined with expert guidance and managed services from ZippyOPS, teams can scale securely and confidently across cloud environments.
To discuss implementation, optimization, or managed CI/CD services, contact:
sales@zippyops.com



