From d4097dd5bdc319603254fd62c4b263e810a3ba72 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 18:06:59 +0700 Subject: [PATCH 01/21] Add Jenkinsfile --- Jenkinsfile | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..ffa9a908b3 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,11 @@ +pipeline { + agent any + + stages { + stage('Build') { + steps { + sh 'npm install' + } + } + } +} From 958a346ba3b2205319444298b3f2a3072c2abbd3 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 21:23:28 +0700 Subject: [PATCH 02/21] Update and rename Jenkinsfile to jenkinsfile --- Jenkinsfile => jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) rename Jenkinsfile => jenkinsfile (89%) diff --git a/Jenkinsfile b/jenkinsfile similarity index 89% rename from Jenkinsfile rename to jenkinsfile index ffa9a908b3..5e804812c9 100644 --- a/Jenkinsfile +++ b/jenkinsfile @@ -1,6 +1,5 @@ pipeline { - agent any - + zagent any stages { stage('Build') { steps { From d417f4fec14d40a456209d7ea416e91d5e4f8319 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 21:23:43 +0700 Subject: [PATCH 03/21] Update jenkinsfile --- jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jenkinsfile b/jenkinsfile index 5e804812c9..c2a3d615c8 100644 --- a/jenkinsfile +++ b/jenkinsfile @@ -1,5 +1,5 @@ pipeline { - zagent any + agent any stages { stage('Build') { steps { From 1796e18f300e2a7ff9be8e2edcb53999e5585276 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 21:29:29 +0700 Subject: [PATCH 04/21] Rename jenkinsfile to Jenkinsfile --- jenkinsfile => Jenkinsfile | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename jenkinsfile => Jenkinsfile (100%) diff --git a/jenkinsfile b/Jenkinsfile similarity index 100% rename from jenkinsfile rename to Jenkinsfile From 26f32eeb4be0ea9a0eee067078a53e54078563c9 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 21:56:07 +0700 Subject: [PATCH 05/21] Delete Jenkinsfile --- Jenkinsfile | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index c2a3d615c8..0000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,10 +0,0 @@ -pipeline { - agent any - stages { - stage('Build') { - steps { - sh 'npm install' - } - } - } -} From 917638cb5771307dca65a2c8c06731f4c6690e61 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 21:56:45 +0700 Subject: [PATCH 06/21] Add files via upload --- Jenkinsfile | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..5b2e173ad9 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,30 @@ +pipeline { + agent { + docker { + image 'node:lts-buster-slim' + args '-p 3000:3000' + } + } + environment { + CI = 'true' + } + stages { + stage('Build') { + steps { + sh 'npm install' + } + } + stage('Test') { + steps { + sh './jenkins/scripts/test.sh' + } + } + stage('Deliver') { + steps { + sh './jenkins/scripts/deliver.sh' + input message: 'Finished using the web site? (Click "Proceed" to continue)' + sh './jenkins/scripts/kill.sh' + } + } + } +} From be00e1a904c072ba88668eaf011c95fa687c0b79 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 21:59:07 +0700 Subject: [PATCH 07/21] Delete Jenkinsfile --- Jenkinsfile | 30 ------------------------------ 1 file changed, 30 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 5b2e173ad9..0000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,30 +0,0 @@ -pipeline { - agent { - docker { - image 'node:lts-buster-slim' - args '-p 3000:3000' - } - } - environment { - CI = 'true' - } - stages { - stage('Build') { - steps { - sh 'npm install' - } - } - stage('Test') { - steps { - sh './jenkins/scripts/test.sh' - } - } - stage('Deliver') { - steps { - sh './jenkins/scripts/deliver.sh' - input message: 'Finished using the web site? (Click "Proceed" to continue)' - sh './jenkins/scripts/kill.sh' - } - } - } -} From 319544d321b3419d12b24cd326c179b4b3d11939 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 21:59:50 +0700 Subject: [PATCH 08/21] Add files via upload --- Jenkinsfile | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..edc1e07c82 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,18 @@ +pipeline { + agent any + + stages { + stage('Build') { + steps { + sh 'npm install' + } + } + + stage('Test') { + steps { + sh './jenkins/scripts/test.sh' + } + } + } +} + From 40b97ef5114337037cbb8d427b087476aa8a88da Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:02:21 +0700 Subject: [PATCH 09/21] Update Jenkinsfile --- Jenkinsfile | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index edc1e07c82..e26d6f3066 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,11 +8,3 @@ pipeline { } } - stage('Test') { - steps { - sh './jenkins/scripts/test.sh' - } - } - } -} - From edf735e968d7ef5ebb1a5de1dc86e59e8b7d415b Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:04:50 +0700 Subject: [PATCH 10/21] Delete Jenkinsfile --- Jenkinsfile | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index e26d6f3066..0000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,10 +0,0 @@ -pipeline { - agent any - - stages { - stage('Build') { - steps { - sh 'npm install' - } - } - From 36b28d20ced53c2f7aaf290c38b60a67bb422c53 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:05:03 +0700 Subject: [PATCH 11/21] Add files via upload --- Jenkinsfile | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..ac570d95eb --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,9 @@ +pipeline { + agent any + + stages { + stage('Build') { + steps { + sh 'npm install' + } + } From feb6562bd4b9eb61d601b38da8b622edafa66e18 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:06:27 +0700 Subject: [PATCH 12/21] Update Jenkinsfile --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index ac570d95eb..c2a3d615c8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,9 +1,10 @@ pipeline { agent any - stages { stage('Build') { steps { sh 'npm install' } } + } +} From 25b64104ad03d1440867fa96462fbfd6b74fa4e1 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:12:21 +0700 Subject: [PATCH 13/21] Update Jenkinsfile --- Jenkinsfile | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index c2a3d615c8..3aa443397c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,10 +1,25 @@ pipeline { agent any + stages { stage('Build') { steps { sh 'npm install' } } + + stage('Test') { + steps { + sh './jenkins/scripts/test.sh' + } + } + + stage('Deliver') { + steps { + sh './jenkins/scripts/deliver.sh' + input message: 'Finished using the web site? (Click "Proceed" to continue)' + sh './jenkins/scripts/kill.sh' + } + } } } From 444e97bab7be4c6d8036a8b1edd18256aa7df6e0 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:15:14 +0700 Subject: [PATCH 14/21] Update Jenkinsfile --- Jenkinsfile | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3aa443397c..ffa9a908b3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,19 +7,5 @@ pipeline { sh 'npm install' } } - - stage('Test') { - steps { - sh './jenkins/scripts/test.sh' - } - } - - stage('Deliver') { - steps { - sh './jenkins/scripts/deliver.sh' - input message: 'Finished using the web site? (Click "Proceed" to continue)' - sh './jenkins/scripts/kill.sh' - } - } } } From c080eabb26370cc4d7b073337cf6cb92b896b073 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:17:32 +0700 Subject: [PATCH 15/21] Update Jenkinsfile --- Jenkinsfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index ffa9a908b3..fbd0fdce5a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,5 +7,10 @@ pipeline { sh 'npm install' } } + stage('Test') { + steps { + sh './jenkins/scripts/test.sh' + } + } } } From ddf4e1922ce8ec38b83cec3315cc859e2b1eff25 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:19:40 +0700 Subject: [PATCH 16/21] Update Jenkinsfile --- Jenkinsfile | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index fbd0fdce5a..a5224058e5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -12,5 +12,12 @@ pipeline { sh './jenkins/scripts/test.sh' } } + stage('Deliver') { + steps { + sh './jenkins/scripts/deliver.sh' + input message: 'Finished using the web site? (Click "Proceed" to continue)' + sh './jenkins/scripts/kill.sh' + } + } } } From dcb4d114b56e7defb5c15779edbe25186e46523d Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Mon, 7 Apr 2025 22:54:34 +0700 Subject: [PATCH 17/21] Add files via upload "Add 'Test' stage" --- Jenkinsfile | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a5224058e5..8b1960f952 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,5 @@ pipeline { agent any - stages { stage('Build') { steps { @@ -12,12 +11,5 @@ pipeline { sh './jenkins/scripts/test.sh' } } - stage('Deliver') { - steps { - sh './jenkins/scripts/deliver.sh' - input message: 'Finished using the web site? (Click "Proceed" to continue)' - sh './jenkins/scripts/kill.sh' - } - } } } From e49d0a3d2367e392460cbc1cd7b98ffaa4253d35 Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Sat, 24 May 2025 13:18:18 +0700 Subject: [PATCH 18/21] Delete Jenkinsfile --- Jenkinsfile | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 8b1960f952..0000000000 --- a/Jenkinsfile +++ /dev/null @@ -1,15 +0,0 @@ -pipeline { - agent any - stages { - stage('Build') { - steps { - sh 'npm install' - } - } - stage('Test') { - steps { - sh './jenkins/scripts/test.sh' - } - } - } -} From c6cd0608af303a2f74bcdbc8706f0460a128858d Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Sat, 24 May 2025 16:27:00 +0700 Subject: [PATCH 19/21] dd modern Jenkinsfile with enhanced configuration --- Jenkinsfile | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..5f10bebbce --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,63 @@ +pipeline { + agent any + + tools { + nodejs 'NodeJS-18' + } + + environment { + CI = 'true' + NODE_ENV = 'test' + } + + options { + buildDiscarder(logRotator(numToKeepStr: '10')) + timeout(time: 30, unit: 'MINUTES') + timestamps() + } + + stages { + stage('Checkout') { + steps { + echo 'Checking out code...' + checkout scm + } + } + + stage('Install Dependencies') { + steps { + echo 'Installing dependencies...' + sh ''' + node --version + npm --version + npm ci --only=production + ''' + } + } + + stage('Build') { + steps { + echo 'Building application...' + sh 'npm run build' + } + post { + always { + archiveArtifacts artifacts: 'build/**/*', allowEmptyArchive: true + } + } + } + } + + post { + always { + echo 'Pipeline completed' + cleanWs() + } + success { + echo 'Pipeline succeeded!' + } + failure { + echo 'Pipeline failed!' + } + } +} From 6fd24095160dfe0f8868c6d37b140ff0a7237cdb Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Sat, 24 May 2025 16:27:54 +0700 Subject: [PATCH 20/21] dd comprehensive testing stage with code quality checks --- Jenkinsfile | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5f10bebbce..7399479178 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,7 +2,7 @@ pipeline { agent any tools { - nodejs 'NodeJS-18' + nodejs 'NodeJS-24' } environment { @@ -30,11 +30,53 @@ pipeline { sh ''' node --version npm --version - npm ci --only=production + npm ci ''' } } + stage('Code Quality & Security') { + parallel { + stage('Lint') { + steps { + echo 'Running ESLint...' + sh 'npm run lint || true' + } + } + stage('Security Audit') { + steps { + echo 'Running security audit...' + sh 'npm audit --audit-level moderate || true' + } + } + } + } + + stage('Test') { + steps { + echo 'Running tests...' + sh ''' + # Run tests with coverage + npm test -- --coverage --watchAll=false --testResultsProcessor=jest-junit + ''' + } + post { + always { + // Publish test results + publishTestResults testResultsPattern: 'junit.xml' + // Publish coverage reports + publishHTML([ + allowMissing: false, + alwaysLinkToLastBuild: true, + keepAll: true, + reportDir: 'coverage/lcov-report', + reportFiles: 'index.html', + reportName: 'Coverage Report' + ]) + } + } + } + stage('Build') { steps { echo 'Building application...' From 25a779946a3d82abf5d3bfaa8543b5fcd91f51dd Mon Sep 17 00:00:00 2001 From: khalidnr <121994573+khalidnr@users.noreply.github.com> Date: Sat, 24 May 2025 16:29:00 +0700 Subject: [PATCH 21/21] Update package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 5e4d915259..e301a70368 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test --env=jsdom", + "lint": "eslint src/", "eject": "react-scripts eject" }, "browserslist": {