Compare commits

...

23 Commits

Author SHA1 Message Date
Robert Ferrús 826c8ff682 Merge branch 'dev' into 6371-limpiezaTablasVn2008Part1
gitea/salix/pipeline/head This commit looks good Details
2024-01-31 06:04:30 +00:00
Juan Ferrer 6d01164fb3 build: refs #6706 hook test
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 23:25:14 +01:00
Juan Ferrer 827586ebd6 build: refs #6706 hook test
gitea/salix/pipeline/head Build started... Details
2024-01-30 23:14:51 +01:00
Juan Ferrer 67db31e39b build: refs #6706 hook test 2024-01-30 23:06:12 +01:00
Juan Ferrer e4f62e4e06 build: refs #6706 hook test
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 22:53:33 +01:00
Juan Ferrer 53ac10d0be build: refs #6706 hook test 2024-01-30 22:33:55 +01:00
Juan Ferrer 7ab11543ed build: refs #5483 Jenkinsfile optimized for daily DB push
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 21:57:04 +01:00
Juan Ferrer 420398260f fix: refs #5483 Jenkinsfile codefix
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 21:49:58 +01:00
Juan Ferrer 4d065a2f79 fix: refs #5483 Jenkinsfile fixes, global nodejs tool
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 21:37:20 +01:00
Juan Ferrer 4251f29a17 fix: refs #5483 compose fixes
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 21:05:59 +01:00
Juan Ferrer 76545cd1ac fix: refs #5483 Jenkinsfile & compose fixes
gitea/salix/pipeline/head There was a failure building this commit Details
2024-01-30 20:58:15 +01:00
Juan Ferrer 29634e16e5 fix: refs #5483 Jenkinsfile fix
gitea/salix/pipeline/head There was a failure building this commit Details
2024-01-30 20:44:33 +01:00
Juan Ferrer 027f7d2c1d build: refs #5483 dev deploy, tag image with version
gitea/salix/pipeline/head There was a failure building this commit Details
2024-01-30 20:41:24 +01:00
Juan Ferrer 7d2b5fbeda build: refs #5483 Parallel install, code reorder
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 20:04:32 +01:00
Juan Ferrer 1a64126655 build: refs #5483 Jenkinsfile parallel deploy
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 19:51:30 +01:00
Juan Ferrer 3e0ebc0f26 fix: refs #5483 Jenkinsfile rocketchat fixes
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 19:45:37 +01:00
Juan Ferrer 84961dda49 build: refs #5483 test workers increased to 6, test rocket notification
gitea/salix/pipeline/head There was a failure building this commit Details
2024-01-30 19:41:09 +01:00
Juan Ferrer 095d6b4140 fix: refs #5483 Unused code removed
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 19:35:23 +01:00
Juan Ferrer 17c9054155 fix: refs #5483 Jenkinsfile fixes
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 19:30:26 +01:00
Juan Ferrer 624f61465a fix: refs #5483 Jenkinsfile fixes
gitea/salix/pipeline/head This commit looks good Details
2024-01-30 19:05:55 +01:00
Juan Ferrer 12af757929 refs #5483 Jenkinsfile fix
gitea/salix/pipeline/head There was a failure building this commit Details
2024-01-30 19:01:14 +01:00
Juan Ferrer 79f509ca46 fix: refs #5483 Jenkinsfile code fix
gitea/salix/pipeline/head There was a failure building this commit Details
2024-01-30 18:54:41 +01:00
Juan Ferrer 56ac47dc16 build: refs #5483 send rocket message, skip steps when run source isn't git
gitea/salix/pipeline/head There was a failure building this commit Details
2024-01-30 18:52:31 +01:00
3 changed files with 113 additions and 74 deletions

161
Jenkinsfile vendored
View File

@ -1,9 +1,17 @@
#!/usr/bin/env groovy
def PROTECTED_BRANCH
def FROM_GIT
def RUN_TESTS
pipeline {
agent any
options {
disableConcurrentBuilds()
}
tools {
nodejs 'node-v20'
}
environment {
PROJECT_NAME = 'salix'
STACK_NAME = "${env.PROJECT_NAME}-${env.BRANCH_NAME}"
@ -13,24 +21,37 @@ pipeline {
steps {
script {
switch (env.BRANCH_NAME) {
case 'master':
env.NODE_ENV = 'production'
env.BACK_REPLICAS = 4
case 'dev':
env.NODE_ENV = 'dev'
env.BACK_REPLICAS = 1
break
case 'test':
env.NODE_ENV = 'test'
env.BACK_REPLICAS = 2
break
}
case 'master':
env.NODE_ENV = 'production'
env.BACK_REPLICAS = 4
break
}
configFileProvider([
configFile(fileId: "salix.groovy",
variable: 'GROOVY_FILE')
]) {
load env.GROOVY_FILE
}
def packageJson = readJSON file: 'package.json'
env.VERSION = packageJson.version
env.GIT_COMMIT_MSG = sh(
script: 'git log -1 --pretty=%B ${GIT_COMMIT}',
returnStdout: true
).trim()
PROTECTED_BRANCH = [
'dev',
'test',
'master'
].contains(env.BRANCH_NAME)
FROM_GIT = JOB_NAME.startsWith('gitea/')
RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT
}
setEnv()
}
}
@ -38,60 +59,85 @@ pipeline {
environment {
NODE_ENV = ""
}
parallel {
stage('Backend') {
steps {
nodejs('node-v20') {
sh 'npm install --no-audit --prefer-offline'
sh 'gulp install --ci'
}
}
stage('Frontend') {
when {
expression { return FROM_GIT }
}
steps {
sh 'npm install --no-audit --prefer-offline --prefix=front'
}
}
stage('Print') {
when {
expression { return FROM_GIT }
}
steps {
sh 'npm install --no-audit --prefer-offline --prefix=print'
}
}
}
}
stage('Test') {
when { not { anyOf {
branch 'test'
branch 'master'
}}}
when {
expression { return RUN_TESTS }
}
environment {
NODE_ENV = ""
TZ = 'Europe/Madrid'
}
parallel {
stage('Frontend') {
steps {
nodejs('node-v20') {
sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=4'
}
}
}
stage('Backend') {
steps {
nodejs('node-v20') {
sh 'npm run test:back:ci'
}
}
stage('Frontend') {
steps {
sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=6'
}
}
}
}
stage('Build') {
when { anyOf {
branch 'test'
branch 'master'
}}
when {
expression { return PROTECTED_BRANCH && FROM_GIT }
}
environment {
CREDENTIALS = credentials('docker-registry')
}
steps {
nodejs('node-v20') {
sh 'gulp build'
}
dockerBuild()
}
}
stage('Deploy') {
when { anyOf {
branch 'test'
branch 'master'
}}
when {
expression { return PROTECTED_BRANCH }
}
parallel {
stage('Database') {
steps {
configFileProvider([
configFile(fileId: "config.${env.NODE_ENV}.ini",
variable: 'MYSQL_CONFIG')
]) {
sh 'mkdir -p db/remotes'
sh 'cp "$MYSQL_CONFIG" db/remotes/$NODE_ENV.ini'
}
sh 'npx myt push $NODE_ENV --force --commit'
}
}
stage('Docker') {
when {
expression { return FROM_GIT }
}
environment {
DOCKER_HOST = "${env.SWARM_HOST}"
}
@ -99,30 +145,13 @@ pipeline {
sh "docker stack deploy --with-registry-auth --compose-file docker-compose.yml ${env.STACK_NAME}"
}
}
stage('Database') {
when { anyOf {
branch 'dev'
branch 'test'
branch 'master'
}}
steps {
configFileProvider([
configFile(fileId: "config.${NODE_ENV}.ini",
variable: 'MYSQL_CONFIG')
]) {
sh 'mkdir -p db/remotes'
sh 'cp "$MYSQL_CONFIG" db/remotes/$NODE_ENV.ini'
}
nodejs('node-v20') {
sh 'npx myt push $NODE_ENV --force --commit'
}
}
}
}
post {
always {
script {
if (!['master', 'test'].contains(env.BRANCH_NAME)) {
if (RUN_TESTS) {
try {
junit 'junitresults.xml'
junit 'junit.xml'
@ -130,18 +159,28 @@ pipeline {
echo e.toString()
}
}
}
}
success {
script {
if (env.BRANCH_NAME == 'master' && FROM_GIT) {
String message = env.GIT_COMMIT_MSG
int index = message.indexOf('\n')
if (index != -1)
message = message.substring(0, index)
if (!env.COMMITTER_EMAIL || currentBuild.currentResult == 'SUCCESS') return;
try {
mail(
to: env.COMMITTER_EMAIL,
subject: "Pipeline: ${env.JOB_NAME} (${env.BUILD_NUMBER}): ${currentBuild.currentResult}",
body: "Check status at ${env.BUILD_URL}"
rocketSend(
channel: 'vn-database',
message: "*DB version uploaded:* ${message}"
+"\n$COMMITTER_EMAIL ($BRANCH_NAME)"
+"\n$GIT_URL/commit/$GIT_COMMIT",
rawMessage: true
)
} catch (e) {
echo e.toString()
}
}
}
unsuccessful {
sendEmail()
}
}
}

View File

@ -1,7 +1,7 @@
version: '3.7'
services:
front:
image: registry.verdnatura.es/salix-front:${BRANCH_NAME:?}
image: registry.verdnatura.es/salix-front:${VERSION:?}
build:
context: .
dockerfile: front/Dockerfile
@ -16,7 +16,7 @@ services:
limits:
memory: 1G
back:
image: registry.verdnatura.es/salix-back:${BRANCH_NAME:?}
image: registry.verdnatura.es/salix-back:${VERSION:?}
build: .
ports:
- 3000

View File

@ -1,6 +1,6 @@
{
"name": "salix-back",
"version": "24.06.01",
"version": "24.6.0",
"author": "Verdnatura Levante SL",
"description": "Salix backend",
"license": "GPL-3.0",