pipeline { agent none options { buildDiscarder logRotator(numToKeepStr: '4') } tools { nodejs 'node-14.LTS' git 'Default' } environment { COMPBIN = "php /usr/local/bin/composer -n" jenkinsgit = credentials('jenkins-gitea-creds') COMPOSER_AUTH = """{ "http-basic": { "git.lemanscorp.com": { "username": "${env.jenkinsgit_USR}", "password": "${env.jenkinsgit_PSW}" } } }""" } stages { stage ('Build') { agent any steps { withCredentials([gitUsernamePassword(credentialsId: 'jenkins-gitea-creds')]) { sh "cd app; env; ${COMPBIN} i " sh 'cd app; find . -name build | xargs chmod 755' sh "cd app; node build-all.js" sh "cd app; tar zcf ../repnetweb-app.tgz *" sh "cd config; tar zcf ../repnetweb-app-config.tgz *" } } post { success { archiveArtifacts(artifacts: "repnetweb-app.tgz,repnetweb-app-config.tgz", fingerprint: true, onlyIfSuccessful: true) } } } stage ('Retrieve config files') { agent any steps { script { dir("DockerfileConfigs") { checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [[$class: 'GitLFSPull']], userRemoteConfigs: [[credentialsId: 'jenkins-gitea-creds', url: 'https://git.lemanscorp.com/OpsAppDev/DockerfileConfigs2.git/']]]) } } } } stage ('Build Repnetweb') { agent any environment { DOCKER_BUILDKIT = 1 } steps { script { sh "cp -R ${env.WORKSPACE}/DockerfileConfigs/repnetweb ${env.WORKSPACE}/dockerbuild/repnetweb/configs/" sh "mv repnetweb-app.tgz dockerbuild/repnetweb" sh "mv repnetweb-app-config.tgz dockerbuild/repnetweb" docker.withRegistry("https://workhorse.lemanscorp.com:8443","lemansdocker") { def repnetwebImage = docker.build("repnetweb", "--build-arg workspace=${env.WORKSPACE} ./dockerbuild/repnetweb") repnetwebImage.push("${env.BUILD_NUMBER}") repnetwebImage.push("latest") sh "docker rmi --force \$(docker images -q ${repnetwebImage.id} | uniq)" } } } post { success { cleanWs() } } } } }