diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 00000000..b0ee0654
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,87 @@
+pipeline{
+ agent any
+ tools{
+ jdk 'jdk17'
+ nodejs 'node16'
+ }
+ environment {
+ SCANNER_HOME=tool 'sonar-scanner'
+ }
+ stages {
+ stage('clean workspace'){
+ steps{
+ cleanWs()
+ }
+ }
+ stage('Checkout from Git'){
+ steps{
+ git branch: 'main', url: 'https://github.com/Iamthor15/DevSecOps-Project'
+ }
+ }
+ stage("Sonarqube Analysis "){
+ steps{
+ withSonarQubeEnv('sonar-server') {
+ sh ''' $SCANNER_HOME/bin/sonar-scanner -Dsonar.projectName=Netflix \
+ -Dsonar.projectKey=Netflix '''
+ }
+ }
+ }
+ stage("quality gate"){
+ steps {
+ script {
+ waitForQualityGate abortPipeline: false, credentialsId: 'Sonar-token'
+ }
+ }
+ }
+ stage('Install Dependencies') {
+ steps {
+ sh "npm install"
+ }
+ }
+ stage('OWASP FS SCAN') {
+ steps {
+ dependencyCheck additionalArguments: '--scan ./ --disableYarnAudit --disableNodeAudit', odcInstallation: 'DP-Check'
+ dependencyCheckPublisher pattern: '**/dependency-check-report.xml'
+ }
+ }
+ stage('TRIVY FS SCAN') {
+ steps {
+ sh "trivy fs . > trivyfs.txt"
+ }
+ }
+ stage("Docker Build & Push"){
+ steps{
+ script{
+ withDockerRegistry(credentialsId: 'docker', toolName: 'docker'){
+ sh "docker build --build-arg TMDB_V3_API_KEY=0c2fe67ca7a6c9d723fd6414791cb98f -t netflix ."
+ sh "docker tag netflix rithik1504/netflix:latest "
+ sh "docker push rithik1504/netflix:latest "
+ }
+ }
+ }
+ }
+ stage("TRIVY"){
+ steps{
+ sh "trivy image rithik1504/netflix:latest > trivyimage.txt"
+ }
+ }
+ stage('Deploy to container'){
+ steps{
+ sh 'docker run -d -p 8081:80 rithik1504/netflix:latest'
+ }
+ }
+ }
+}
+post {
+ always {
+ emailext attachLog: true,
+ subject: "'${currentBuild.result}'",
+ body: "Project: ${env.JOB_NAME}
" +
+ "Build Number: ${env.BUILD_NUMBER}
" +
+ "URL: ${env.BUILD_URL}
",
+ to: 'singhrithik946@gmail.com',
+ attachmentsPattern: 'trivyfs.txt,trivyimage.txt'
+ }
+ }
+}
+