pipeline { agent none stages { stage('Install') { agent { docker { image 'node:lts-bullseye-slim' args '-p 3000:3000' } } steps { sh 'npm install' stash includes: 'node_modules/', name: 'node_modules' } } stage('Test') { agent { docker { image 'node:lts-bullseye-slim' args '-p 3000:3000' } } parallel { stage('Static code analysis') { steps { unstash 'node_modules' sh 'npm run-script lint' } } stage('Unit tests') { steps { unstash 'node_modules' sh 'npm run-script test' } } } } stage('Build') { steps { unstash 'node_modules' sh 'npm run-script build' stash includes: 'dist/', name: 'dist' } } stage('Build Docker Image') { // environment { // DOCKER_PUSH = credentials('docker_push') // } steps { unstash 'dist' // sh 'docker build -t $DOCKER_PUSH_URL/frontend .' sh 'docker build .' // sh 'docker login -u $DOCKER_PUSH_USR -p $DOCKER_PUSH_PSW $DOCKER_PUSH_URL' // sh 'docker push $DOCKER_PUSH_URL/frontend' } } } }