diff --git a/Jenkinsfile b/Jenkinsfile index 06addc9408..cb76da130d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,6 +8,7 @@ def RUN_BUILD def BRANCH_ENV = [ test: 'test', master: 'production', + main: 'production', beta: 'production' ] @@ -20,12 +21,14 @@ node { 'dev', 'test', 'master', + 'main', 'beta' ].contains(env.BRANCH_NAME) FROM_GIT = env.JOB_NAME.startsWith('gitea/') RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT RUN_BUILD = PROTECTED_BRANCH && FROM_GIT + IS_LATEST = ['master', 'main'].contains(env.BRANCH_NAME) // https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables echo "NODE_NAME: ${env.NODE_NAME}" @@ -73,6 +76,7 @@ pipeline { def packageJson = readJSON file: 'package.json' def version = "${packageJson.version}-build${env.BUILD_ID}" writeFile(file: 'VERSION.txt', text: version) + echo "VERSION.txt: ${version}" } } } @@ -105,93 +109,73 @@ pipeline { } } } - stage('Stack') { - parallel { - stage('Back') { - stages { - stage('Test') { - when { - expression { RUN_TESTS } - } - environment { - NODE_ENV = '' - } - steps { - sh 'node back/tests.js --junit' - } - post { - always { - junit( - testResults: 'junitresults.xml', - allowEmptyResults: true - ) - } - } - } - stage('Build') { - when { - expression { RUN_BUILD } - } - environment { - VERSION = readFile 'VERSION.txt' - } - steps { - sh 'docker-compose build back' - } - } - } - } - stage('Front') { - when { - expression { FROM_GIT } - } - stages { - stage('Test') { - when { - expression { RUN_TESTS } - } - environment { - NODE_ENV = '' - } - steps { - sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=10' - } - post { - always { - junit( - testResults: 'junit.xml', - allowEmptyResults: true - ) - } - } - } - stage('Build') { - when { - expression { RUN_BUILD } - } - environment { - VERSION = readFile 'VERSION.txt' - } - steps { - sh 'gulp build' - sh 'docker-compose build front' - } - } - } - } - } - } - stage('Push') { + stage('Build') { when { expression { RUN_BUILD } } environment { - CREDENTIALS = credentials('docker-registry') VERSION = readFile 'VERSION.txt' + CREDENTIALS = credentials('docker-registry') } - steps { - sh 'docker login --username $CREDENTIALS_USR --password $CREDENTIALS_PSW $REGISTRY' - sh 'docker-compose push' + parallel { + stage('Back') { + steps { + dockerBuildPush 'salix-back', '.', 'back/Dockerfile' + } + } + stage('Front') { + steps { + sh 'gulp build' + dockerBuildPush 'salix-front', 'front' + } + } + stage('DB') { + steps { + sh 'npx myt run -t' + sh 'docker exec vn-database sh -c "cp -r /var/lib/mysql /data"' + sh 'docker commit vn-database vn_db' + sh 'docker stop vn-database' + sh 'docker rm vn-database' + + dockerBuildPush 'salix-db', 'db' + } + } + } + } + stage('Test') { + when { + expression { RUN_TESTS } + } + environment { + NODE_ENV = '' + } + parallel { + stage('Back') { + steps { + sh 'node back/tests.js --junit' + } + post { + always { + junit( + testResults: 'junitresults.xml', + allowEmptyResults: true + ) + } + } + } + stage('Front') { + steps { + sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=10' + } + post { + always { + junit( + testResults: 'junit.xml', + allowEmptyResults: true + ) + } + } + } } } stage('Deploy') { @@ -264,3 +248,16 @@ pipeline { } } } + +def dockerBuildPush(imageName, context, dockerfile = null) { + if (dockerfile == null) + dockerfile = "${context}/Dockerfile" + + docker.withRegistry("https://${env.REGISTRY}", 'docker-registry') { + def baseImage = "${imageName}:${env.VERSION}" + def image = docker.build(baseImage, "-f ${dockerfile} ${context}") + image.push() + image.push(env.BRANCH_NAME) + if (IS_LATEST) image.push('latest') + } +} diff --git a/back/Dockerfile b/back/Dockerfile index b2c3298966..bd48374d6e 100644 --- a/back/Dockerfile +++ b/back/Dockerfile @@ -25,7 +25,7 @@ RUN apt-get update \ libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 \ libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 \ libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 \ - libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \ + libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 build-essential \ fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget # Extra dependencies @@ -55,4 +55,4 @@ COPY \ README.md \ ./ -CMD ["node", "--tls-min-v1.0", "--openssl-legacy-provider", "./loopback/server/server.js"] \ No newline at end of file +CMD ["node", "--tls-min-v1.0", "--openssl-legacy-provider", "./loopback/server/server.js"] diff --git a/back/methods/osticket/sendToSupport.js b/back/methods/osticket/sendToSupport.js index dabd35f80e..55ac65635b 100644 --- a/back/methods/osticket/sendToSupport.js +++ b/back/methods/osticket/sendToSupport.js @@ -33,25 +33,52 @@ module.exports = Self => { const emailUser = await Self.app.models.EmailUser.findById(userId, {fields: ['email']}); - let html = `

Motivo: ${reason}

`; - html += `

Usuario: ${userId} ${emailUser.email}

`; - html += `

Additional Data:

`; - html += '