From 104571cdd0e6ca0de3b0f1bbc10f4b185c341a2e Mon Sep 17 00:00:00 2001 From: root Date: Tue, 30 Sep 2025 18:23:25 +0800 Subject: [PATCH 1/4] Create-Jenkinsfile --- Jenkinsfile | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 000000000..818eef286 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,49 @@ +pipeline { + agent { + // Use Node 16 Docker image as the build agent + docker { image 'node:16' } + } + + environment { + // Set the Docker image name/tag + IMAGE_NAME = 'chiamintwts/assignment2_22165266:latest' + } + + stages { + stage('Install Dependencies') { + steps { + // Install Node.js dependencies + sh 'npm install' + } + } + stage('Run Unit Tests') { + steps { + // Run your test suite + sh 'npm test' + } + } + stage('Security Scan') { + steps { + // Install Snyk CLI and run a scan + sh 'npm install -g snyk' + // Pipeline fails if any high severity issues are found + sh 'snyk test --severity-threshold=high' + } + } + stage('Build Docker Image') { + steps { + // Build the Docker image for the app + sh 'docker build -t $IMAGE_NAME .' + } + } + stage('Push Docker Image') { + steps { + // Login to Docker Hub and push the image + withCredentials([usernamePassword(credentialsId: 'dockerhub-credentials', usernameVariable: 'DOCKERHUB_USER', passwordVariable: 'DOCKERHUB_PASS')]) { + sh 'echo $DOCKERHUB_PASS | docker login -u $DOCKERHUB_USER --password-stdin' + sh 'docker push $IMAGE_NAME' + } + } + } + } +} \ No newline at end of file From 61eae0952a150fcbff8a8c71e133d58c4c3de8ae Mon Sep 17 00:00:00 2001 From: root Date: Tue, 30 Sep 2025 18:26:37 +0800 Subject: [PATCH 2/4] Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 818eef286..3770e68d7 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -5,7 +5,7 @@ pipeline { } environment { - // Set the Docker image name/tag + // Set the Docker image name and tag IMAGE_NAME = 'chiamintwts/assignment2_22165266:latest' } From be924f5a4b0bc9ac38b5e3492176e303076de06c Mon Sep 17 00:00:00 2001 From: root Date: Tue, 30 Sep 2025 18:28:30 +0800 Subject: [PATCH 3/4] Create Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3770e68d7..07ccc86c3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,7 +18,7 @@ pipeline { } stage('Run Unit Tests') { steps { - // Run your test suite + // Run the test suite sh 'npm test' } } From 417d2ad4a581850a6f1b0de5fe376dc982dab0ad Mon Sep 17 00:00:00 2001 From: root Date: Tue, 30 Sep 2025 18:30:00 +0800 Subject: [PATCH 4/4] Edit Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 07ccc86c3..1f09e3a7c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -12,7 +12,7 @@ pipeline { stages { stage('Install Dependencies') { steps { - // Install Node.js dependencies + // Install dependencies - Node.js sh 'npm install' } }