fix: refs #6695 update Cypress configuration and Docker setup for improved testing
gitea/salix-front/pipeline/pr-dev There was a failure building this commit Details

This commit is contained in:
Alex Moreno 2025-02-20 14:06:37 +01:00
parent 50637e8415
commit b5342cc130
6 changed files with 47 additions and 59 deletions

79
Jenkinsfile vendored
View File

@ -64,58 +64,53 @@ pipeline {
} }
steps { steps {
sh 'pnpm install --prefer-offline' sh 'pnpm install --prefer-offline'
sh 'pnpm exec cypress install'
} }
} }
// stage('Test: Unit') { stage('Test') {
// when {
// expression { !PROTECTED_BRANCH }
// }
// environment {
// NODE_ENV = ""
// }
// steps {
// sh 'pnpm run test:unit:ci'
// }
// post {
// always {
// junit(
// testResults: 'junitresults.xml',
// allowEmptyResults: true
// )
// }
// }
// }
stage('Test: E2E') {
when { when {
expression { !PROTECTED_BRANCH } expression { !PROTECTED_BRANCH }
} }
environment { environment {
NODE_ENV = "" NODE_ENV = ""
CREDENTIALS = credentials('docker-registry')
} }
steps { parallel {
script { stage('Unit') {
def packageJson = readJSON file: 'package.json' steps {
env.NETWORK = "${PROJECT_NAME}-${env.BRANCH_NAME}-${env.BUILD_ID}" sh 'pnpm run test:unit:ci'
}
sh "docker-compose -p ${env.NETWORK} -f docker-compose.e2e.yml up -d" post {
always {
def networkLowerCase = env.NETWORK.toLowerCase() junit(
def image = docker.build('cypress-setup:latest', '-f ./test/cypress/Dockerfile .') testResults: 'junitresults.xml',
image.inside(""" allowEmptyResults: true
--network ${networkLowerCase}_default )
-e TZ=Europe/Madrid }
-e DOCKER=true
-e CI=true
""".stripIndent()) {
sh 'pnpm exec cypress install'
sh 'pnpm exec cypress run --browser chromium'
} }
} }
} stage('E2E') {
post { environment {
always { CREDENTIALS = credentials('docker-registry')
sh "docker-compose -p ${env.NETWORK} -f docker-compose.e2e.yml down" CI = "true"
TZ = 'Europe/Madrid'
COMPOSE_PROJECT = "${PROJECT_NAME}-${env.BRANCH_NAME}-${env.BUILD_ID}".toLowerCase()
COMPOSE_PARAMS = "--project-name ${env.COMPOSE_PROJECT} --project-directory . --file test/cypress/docker-compose.yml"
}
steps {
script {
sh "docker-compose ${env.COMPOSE_PARAMS} up -d"
def image = docker.build('cypress-setup', '-f ./test/cypress/Dockerfile .')
image.inside("--network ${env.COMPOSE_PROJECT}_default -e TZ -e CI") {
sh 'cypress run --browser chromium --spec test/cypress/integration/claim/claimAction.spec.js'
}
}
}
post {
always {
sh "docker-compose ${env.COMPOSE_PARAMS} down"
}
}
} }
} }
} }

View File

@ -2,7 +2,7 @@ import { defineConfig } from 'cypress';
// https://docs.cypress.io/app/tooling/reporters // https://docs.cypress.io/app/tooling/reporters
// https://docs.cypress.io/app/references/configuration // https://docs.cypress.io/app/references/configuration
// https://www.npmjs.com/package/cypress-mochawesome-reporter // https://www.npmjs.com/package/cypress-mochawesome-reporter
const baseUrl = `http://${process.env.DOCKER ? 'front' : 'localhost'}:9000`; const baseUrl = `http://${process.env.CI ? 'front' : 'localhost'}:9000`;
export default defineConfig({ export default defineConfig({
e2e: { e2e: {

View File

@ -11,7 +11,7 @@
import { configure } from 'quasar/wrappers'; import { configure } from 'quasar/wrappers';
import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'; import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite';
import path from 'path'; import path from 'path';
const target = `http://${process.env.DOCKER ? 'back' : 'localhost'}:3000`; const target = `http://${process.env.CI ? 'back' : 'localhost'}:3000`;
export default configure(function (/* ctx */) { export default configure(function (/* ctx */) {
return { return {

View File

@ -1,12 +1,5 @@
FROM alexmorenovn/vndev:latest FROM alexmorenovn/vndev:latest
WORKDIR /app RUN pnpm install --global cypress@13.6.6 && cypress install
# Copiar los archivos de package.json y pnpm-lock.yaml para evitar reinstalar dependencias innecesariamente
COPY package.json pnpm-lock.yaml ./
# Instalar solo Cypress sin instalar todas las dependencias del proyecto
RUN pnpm install --frozen-lockfile && pnpm exec cypress install
# Definir el directorio de trabajo por defecto
WORKDIR /app WORKDIR /app

View File

@ -7,7 +7,7 @@
"connector": "vn-mysql", "connector": "vn-mysql",
"database": "vn", "database": "vn",
"debug": false, "debug": false,
"host": "vn-database", "host": "db",
"port": "3306", "port": "3306",
"username": "root", "username": "root",
"password": "root", "password": "root",

View File

@ -6,7 +6,7 @@ services:
- ./test/cypress/storage:/salix/storage - ./test/cypress/storage:/salix/storage
- ./test/cypress/back/datasources.json:/salix/loopback/server/datasources.json - ./test/cypress/back/datasources.json:/salix/loopback/server/datasources.json
depends_on: depends_on:
- vn-database - db
front: front:
image: alexmorenovn/vndev:latest image: alexmorenovn/vndev:latest
command: quasar dev command: quasar dev
@ -14,7 +14,7 @@ services:
- .:/app - .:/app
working_dir: /app working_dir: /app
environment: environment:
- TZ=Europe/Madrid - TZ
- DOCKER=true - CI
vn-database: db:
image: registry.verdnatura.es/salix-db:dev image: registry.verdnatura.es/salix-db:25.10.0-build1343