8713-testToMaster #3523
|
@ -8,6 +8,7 @@ def RUN_BUILD
|
||||||
def BRANCH_ENV = [
|
def BRANCH_ENV = [
|
||||||
test: 'test',
|
test: 'test',
|
||||||
master: 'production',
|
master: 'production',
|
||||||
|
main: 'production',
|
||||||
beta: 'production'
|
beta: 'production'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -20,12 +21,14 @@ node {
|
||||||
'dev',
|
'dev',
|
||||||
'test',
|
'test',
|
||||||
'master',
|
'master',
|
||||||
|
'main',
|
||||||
'beta'
|
'beta'
|
||||||
].contains(env.BRANCH_NAME)
|
].contains(env.BRANCH_NAME)
|
||||||
|
|
||||||
FROM_GIT = env.JOB_NAME.startsWith('gitea/')
|
FROM_GIT = env.JOB_NAME.startsWith('gitea/')
|
||||||
RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT
|
RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT
|
||||||
RUN_BUILD = 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
|
// https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables
|
||||||
echo "NODE_NAME: ${env.NODE_NAME}"
|
echo "NODE_NAME: ${env.NODE_NAME}"
|
||||||
|
@ -73,6 +76,7 @@ pipeline {
|
||||||
def packageJson = readJSON file: 'package.json'
|
def packageJson = readJSON file: 'package.json'
|
||||||
def version = "${packageJson.version}-build${env.BUILD_ID}"
|
def version = "${packageJson.version}-build${env.BUILD_ID}"
|
||||||
writeFile(file: 'VERSION.txt', text: version)
|
writeFile(file: 'VERSION.txt', text: version)
|
||||||
|
echo "VERSION.txt: ${version}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,93 +109,73 @@ pipeline {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Stack') {
|
stage('Build') {
|
||||||
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') {
|
|
||||||
when {
|
when {
|
||||||
expression { RUN_BUILD }
|
expression { RUN_BUILD }
|
||||||
}
|
}
|
||||||
environment {
|
environment {
|
||||||
CREDENTIALS = credentials('docker-registry')
|
|
||||||
VERSION = readFile 'VERSION.txt'
|
VERSION = readFile 'VERSION.txt'
|
||||||
|
CREDENTIALS = credentials('docker-registry')
|
||||||
}
|
}
|
||||||
steps {
|
parallel {
|
||||||
sh 'docker login --username $CREDENTIALS_USR --password $CREDENTIALS_PSW $REGISTRY'
|
stage('Back') {
|
||||||
sh 'docker-compose push'
|
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') {
|
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')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
FROM mariadb:10.11.6
|
||||||
|
ENV TZ Europe/Madrid
|
||||||
|
COPY --from=vn_db /data /var/lib/mysql
|
||||||
|
CMD ["mysqld"]
|
|
@ -1,11 +0,0 @@
|
||||||
version: '3.7'
|
|
||||||
services:
|
|
||||||
front:
|
|
||||||
image: registry.verdnatura.es/salix-front:${VERSION:?}
|
|
||||||
build:
|
|
||||||
context: front
|
|
||||||
back:
|
|
||||||
image: registry.verdnatura.es/salix-back:${VERSION:?}
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: back/Dockerfile
|
|
Loading…
Reference in New Issue