Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
f562d49
First sample
ghubpraveen Apr 9, 2026
5f92ba9
First Sample-PollSCM
ghubpraveen Apr 9, 2026
3d7c247
First Sample-PollSCM1
ghubpraveen Apr 9, 2026
2b754ef
First Sample-WAR copy
ghubpraveen Apr 9, 2026
a64b697
First Sample-WAR copy1
ghubpraveen Apr 9, 2026
dab049c
First Sample-WAR copy2
ghubpraveen Apr 9, 2026
dab878f
New trial
ghubpraveen Apr 9, 2026
b9201b6
New trial1
ghubpraveen Apr 9, 2026
a4699d8
New trial2
ghubpraveen Apr 9, 2026
348dc86
Checkout block
ghubpraveen Apr 10, 2026
074e9f5
Workspace-params
ghubpraveen Apr 10, 2026
e860332
updated Build Name
ghubpraveen Apr 10, 2026
d99ad73
updated Build Name
ghubpraveen Apr 10, 2026
6463146
updated Build Name
ghubpraveen Apr 10, 2026
10e1a45
updated Build Name
ghubpraveen Apr 10, 2026
41476e5
updated Build Name
ghubpraveen Apr 10, 2026
c3842cf
updated Build Name1
ghubpraveen Apr 10, 2026
763c569
updated Build Name1
ghubpraveen Apr 10, 2026
c6dd2f9
updated Build Name1
ghubpraveen Apr 10, 2026
b37c186
UPDATES
ghubpraveen Apr 10, 2026
b7a4950
UPDATES
ghubpraveen Apr 10, 2026
1964d22
UPDATES
ghubpraveen Apr 10, 2026
4d45812
UPDATES
ghubpraveen Apr 10, 2026
8b64c99
UPDATES
ghubpraveen Apr 10, 2026
cc74d7f
UPDATES
ghubpraveen Apr 10, 2026
a596a36
UPDATES
ghubpraveen Apr 10, 2026
a9a8561
UPDATES
ghubpraveen Apr 10, 2026
59215cb
UPDATES
ghubpraveen Apr 10, 2026
d67adc6
UPDATES
ghubpraveen Apr 10, 2026
81c2861
SH Modify
ghubpraveen Apr 13, 2026
1a74981
SH Modify
ghubpraveen Apr 13, 2026
3fae6e4
SH Modify
ghubpraveen Apr 13, 2026
9c7d2bb
SH Modify
ghubpraveen Apr 13, 2026
4d5cf6d
SH Modify
ghubpraveen Apr 13, 2026
21295c2
SH Modify
ghubpraveen Apr 13, 2026
d3aac08
SH Modify
ghubpraveen Apr 13, 2026
8e42dc6
SH Modify
ghubpraveen Apr 13, 2026
a14c900
SH Modify
ghubpraveen Apr 13, 2026
56b2084
SH Modify
ghubpraveen Apr 13, 2026
c5b7a88
War Generation groovy
ghubpraveen Apr 13, 2026
ac8b994
War Generation groovy
ghubpraveen Apr 13, 2026
1e17ef5
Forced bash
ghubpraveen Apr 14, 2026
b654313
Test
ghubpraveen Apr 14, 2026
8416a1e
testing
ghubpraveen Apr 14, 2026
64843e9
testing
ghubpraveen Apr 14, 2026
02e7198
testing
ghubpraveen Apr 14, 2026
882406a
testing
ghubpraveen Apr 14, 2026
66e4871
testing
ghubpraveen Apr 14, 2026
d5ed4f7
GitHub actions tes
ghubpraveen Apr 14, 2026
7c1c37a
GitHub Actions testing
ghubpraveen Apr 14, 2026
72b02c5
GitHub Actions testing
ghubpraveen Apr 14, 2026
7eb9bef
GitHub Actions testing
ghubpraveen Apr 14, 2026
7b81f6b
GitHub Actions testing
ghubpraveen Apr 14, 2026
3bb52b5
Shared Library
ghubpraveen Apr 16, 2026
95d56e8
Shared Library
ghubpraveen Apr 16, 2026
55335df
Shared Library
ghubpraveen Apr 16, 2026
9b95440
Shared Library
ghubpraveen Apr 16, 2026
9b57409
Parmameters
ghubpraveen Apr 16, 2026
41ce929
Parmameters
ghubpraveen Apr 16, 2026
cc15d17
Parmameters
ghubpraveen Apr 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
@Library('cicd-library') _

pipeline {
agent any

triggers {
githubPush()
}

parameters {
string(name: 'BRANCH', defaultValue: '', description: 'Git branch')
choice(name: 'BUILD_ENV', choices: ['uat', 'stage', 'prod'], description: 'Environment')
choice(name: 'REQUIRED', choices: ['Build', 'Deploy'], description: 'Action')
}

environment {
PARAMS_FILE = "${env.WORKSPACE}/build-params.env"
}

stages {

stage('Checkout') {
steps {
checkout scm
}
}

stage('Validate Input') {
steps {
script {
if (!params.BRANCH || !params.BUILD_ENV) {
error "❌ Missing BRANCH or BUILD_ENV"
}

echo "🚀 Branch: ${params.BRANCH}"
echo "🌍 Env: ${params.BUILD_ENV}"
echo "⚙️ Action: ${params.REQUIRED}"
}
}
}

stage('Prepare Params') {
steps {
script {
env.BRANCH = params.BRANCH ?: env.GIT_BRANCH?.replaceAll('origin/', '')
env.COMMIT_HASH = sh(script: 'git rev-parse HEAD', returnStdout: true).trim()

env.REQUIRED = params.REQUIRED
env.BUILD_ENV = params.BUILD_ENV
}

writeFile file: env.PARAMS_FILE, text: """\
JOB_NAME=${env.JOB_NAME}
BRANCH=${env.BRANCH}
COMMIT_HASH=${env.COMMIT_HASH}
BUILD_ENV=${env.BUILD_ENV}
REQUIRED=${env.REQUIRED}
WORKSPACE=${env.WORKSPACE}
"""
}
}

stage('Run Deployment') {
steps {
deploy("${env.PARAMS_FILE}")
}
}
}
}
97 changes: 97 additions & 0 deletions deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
#!/bin/bash
# java_deployment.sh
# Reads params from file and builds the WAR

set -e
trap 'echo "❌ Failed at line $LINENO"' ERR

# ── Step 1: Read the params file ──────────────────────────
PARAMS_FILE=$1

if [[ -z "$PARAMS_FILE" || ! -f "$PARAMS_FILE" ]]; then
echo "❌ ERROR: Params file not found: $PARAMS_FILE"
exit 1
fi

echo "📄 Reading params from: $PARAMS_FILE"
set -a # auto-export all variables
source "$PARAMS_FILE"
set +a

# ── Step 2: Print what we got ─────────────────────────────
echo "==============================="
echo "JOB_NAME : $JOB_NAME"
echo "BRANCH : $BRANCH"
echo "COMMIT_HASH : $COMMIT_HASH"
echo "BUILD_ENV : $BUILD_ENV"
echo "REQUIRED : $REQUIRED"
echo "WORKSPACE : $WORKSPACE"
echo "==============================="

# ── Step 3: Go to workspace and build WAR ─────────────────
cd "$WORKSPACE"

echo "🔨 Starting Maven WAR build...."
mvn clean package -DskipTests

# ── Step 4: Confirm WAR was created ───────────────────────
WAR_FILE="$WORKSPACE/target/SampleWebApp.war"

if [[ -f "$WAR_FILE" ]]; then
echo "✅ WAR built successfully: $WAR_FILE"
ls -lh "$WAR_FILE"
else
echo "❌ WAR file not found after build!"
exit 1
fi

DEPLOY_DIR="$WORKSPACE/app_scripts/"
cp "$WAR_FILE" "$DEPLOY_DIR/SampleWebAPP-${COMMIT_HASH:0:7}.war"

if [[ -f "$DEPLOY_DIR/SampleWebAPP-${COMMIT_HASH:0:7}.war" ]]; then
echo "✅ WAR copied successfully!"
else
echo "❌ WAR copy failed"
exit 1
fi

# # ── Step 6: Deploy to Tomcat ──────────────────────────────
# TOMCAT_WEBAPPS="/var/lib/tomcat9/webapps"
# APP_NAME="SampleWebApp"

# echo "🚀 Starting Tomcat deployment..."

# # Stop Tomcat
# echo "⏹ Stopping Tomcat..."
# sudo systemctl stop tomcat9

# # Remove old deployment
# if [[ -d "$TOMCAT_WEBAPPS/$APP_NAME" ]]; then
# echo "🗑 Removing old deployment..."
# sudo rm -rf "$TOMCAT_WEBAPPS/$APP_NAME"
# fi

# if [[ -f "$TOMCAT_WEBAPPS/$APP_NAME.war" ]]; then
# echo "🗑 Removing old WAR..."
# sudo rm -f "$TOMCAT_WEBAPPS/$APP_NAME.war"
# fi

# # Copy new WAR to Tomcat
# echo "📂 Copying new WAR to Tomcat..."
# sudo cp "$WAR_FILE" "$TOMCAT_WEBAPPS/$APP_NAME.war"

# # Start Tomcat
# echo "▶ Starting Tomcat..."
# sudo systemctl start tomcat9

# # ── Step 7: Verify Deployment ─────────────────────────────
# echo "⏳ Waiting for Tomcat to deploy WAR..."
# sleep 15

# if [[ -d "$TOMCAT_WEBAPPS/$APP_NAME" ]]; then
# echo "✅ Deployment successful!"
# echo "🌐 App available at: http://localhost:8080/$APP_NAME"
# else
# echo "❌ Deployment failed — folder not created by Tomcat"
# exit 1
# fi
44 changes: 44 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<!-- pom.xml -->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>com.sample</groupId>
<artifactId>SampleWebApp</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>SampleWebApp</name>

<build>
<sourceDirectory>web</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<!-- Tells Maven where your web files are -->
<warSourceDirectory>web</warSourceDirectory>
<warName>SampleWebApp</warName>
<!-- No web.xml validation issues -->
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>

<finalName>SampleWebApp</finalName>
</build>

</project>