From 06eb1bc8cb2d2332ba53f82ce7de9e0654fab26b Mon Sep 17 00:00:00 2001 From: alexm <alexm@verdnatura.es> Date: Wed, 19 Feb 2025 12:14:57 +0100 Subject: [PATCH] ci: refs #6695 refactor Cypress setup in Jenkinsfile and replace local docker-compose with new configuration --- Jenkinsfile | 79 +++++-------------- docker-compose.e2e.local.yml | 29 ------- .../cypress/docker-compose.e2e.yml | 9 --- 3 files changed, 19 insertions(+), 98 deletions(-) delete mode 100644 docker-compose.e2e.local.yml rename docker-compose.e2e.yml => test/cypress/docker-compose.e2e.yml (64%) diff --git a/Jenkinsfile b/Jenkinsfile index d9ee8537185..39313092f24 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -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}") - } -} - diff --git a/docker-compose.e2e.local.yml b/docker-compose.e2e.local.yml deleted file mode 100644 index c0bb149b4d0..00000000000 --- a/docker-compose.e2e.local.yml +++ /dev/null @@ -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 diff --git a/docker-compose.e2e.yml b/test/cypress/docker-compose.e2e.yml similarity index 64% rename from docker-compose.e2e.yml rename to test/cypress/docker-compose.e2e.yml index 53b80a78d18..0eeb676f1e4 100644 --- a/docker-compose.e2e.yml +++ b/test/cypress/docker-compose.e2e.yml @@ -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