ci: refs #6695 refactor Cypress setup in Jenkinsfile and replace local docker-compose with new configuration
gitea/salix-front/pipeline/pr-dev There was a failure building this commit Details

This commit is contained in:
Alex Moreno 2025-02-19 12:14:57 +01:00
parent 29140b821d
commit 06eb1bc8cb
3 changed files with 19 additions and 98 deletions

79
Jenkinsfile vendored
View File

@ -93,49 +93,27 @@ pipeline {
NODE_ENV = ""
CREDENTIALS = credentials('docker-registry')
}
stages {
stage('Setup') {
steps {
script {
def packageJson = readJSON file: 'package.json'
env.VERSION = "${packageJson.version}-build${env.BUILD_ID}"
env.NETWORK = "${PROJECT_NAME}-${env.BRANCH_NAME}-${env.BUILD_ID}"
cleanDockerE2E()
// sh "pnpm exec cypress install"
// sh "docker build -t cypress-setup:latest -f ./test/cypress/Dockerfile ."
docker.build('cypress-setup:latest', "-f ./test/cypress/Dockerfile .")
}
steps {
script {
def packageJson = readJSON file: 'package.json'
env.VERSION = "${packageJson.version}-build${env.BUILD_ID}"
env.NETWORK = "${PROJECT_NAME}-${env.BRANCH_NAME}-${env.BUILD_ID}"
docker.build('cypress-setup:latest', "-f ./test/cypress/Dockerfile .")
sh "docker-compose -p ${env.NETWORK} -f test/cypress/docker-compose.e2e.yml up -d"
def networkLowerCase = env.NETWORK.toLowerCase()
def image = docker.image('cypress-setup', , "-f ./test/cypress/Dockerfile .")
image.inside("""
--network ${networkLowerCase}_default \
-e TZ=Europe/Madrid \
-e DOCKER=true \
-e CI=true \
-v .:/app \
-w /app \
""") {
sh 'pnpm exec cypress run --browser chromium'
}
}
stage('Run') {
steps {
script {
sh "docker-compose -p ${env.NETWORK} -f docker-compose.e2e.yml up -d"
def networkLowerCase = env.NETWORK.toLowerCase()
sh """
docker run --rm --name ${env.NETWORK}_cypress \
--network ${networkLowerCase}_default \
-e TZ=Europe/Madrid \
-e DOCKER=true \
-e CI=true \
-v .:/app \
-w /app \
cypress-setup \
pnpm exec cypress run --browser chromium
"""
// def containerId = sh(script: "docker ps -q -f name=${env.NETWORK}_cypress", returnStdout: true).trim()
// echo "Container ID: ${containerId}"
// checkErrors(containerId)
}
}
}
}
post {
always {
cleanDockerE2E()
sh "docker-compose -p ${env.NETWORK} -f test/cypress/docker-compose.e2e.yml down"
}
}
}
@ -175,22 +153,3 @@ pipeline {
}
}
}
def cleanDockerE2E() {
script {
sh "docker-compose -p ${env.NETWORK} -f docker-compose.e2e.yml down || true"
sh "docker rm -f ${env.NETWORK}_cypress || true"
}
}
def checkErrors(String containerId) {
echo "Container ID: ${containerId}"
def exitCode = sh(script: "docker inspect -f '{{.State.ExitCode}}' ${containerId}", returnStdout: true).trim()
echo "Exit code: ${exitCode}"
if (exitCode != '0') {
def logs = sh(script: "docker logs ${containerId}", returnStdout: true).trim()
error("Cypress E2E tests failed with exit code: ${exitCode}\nLogs:\n${logs}")
}
}

View File

@ -1,29 +0,0 @@
version: '3.7'
services:
back:
image: registry.verdnatura.es/salix-back:dev
volumes:
- ./test/cypress/storage:/salix/storage
- ./test/cypress/back/datasources.json:/salix/loopback/server/datasources.json
depends_on:
- vn-database
front:
image: alexmorenovn/vndev:latest
command: quasar dev
volumes:
- .:/app
working_dir: /app
environment:
- TZ=Europe/Madrid
- DOCKER=true
e2e:
image: cypress-setup:latest
command: sh -c "while [ ! -d node_modules/cypress ]; do sleep 1; done && pnpm exec cypress run --browser chromium --spec ${CYPRESS_SPEC:?}"
environment:
- TZ=Europe/Madrid
- DOCKER=true
volumes:
- .:/app
working_dir: /app
vn-database:
image: registry.verdnatura.es/salix-db:dev

View File

@ -16,14 +16,5 @@ services:
environment:
- TZ=Europe/Madrid
- DOCKER=true
# e2e:
# image: cypress-setup:latest
# command: sh -c "while [ ! -d node_modules/cypress ]; do sleep 1; done && pnpm exec cypress run --browser chromium"
# environment:
# - TZ=Europe/Madrid
# - DOCKER=true
# volumes:
# - .:/app
# working_dir: /app
vn-database:
image: registry.verdnatura.es/salix-db:dev