From ba6654a4894118f815c654d0f7bf1ab942dc095d Mon Sep 17 00:00:00 2001 From: David Ali Date: Mon, 5 Jan 2026 20:54:32 +0100 Subject: [PATCH 1/2] simplify Jenkinsfile --- Jenkinsfile | 47 ++++++++++++++--------------------------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index d1883b6..2db0727 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,77 +2,58 @@ pipeline { agent any environment { - // Tożsamość bota, który będzie widoczny w historii Gita jako autor scalenia GIT_AUTHOR_NAME = 'Jenkins Bot' GIT_AUTHOR_EMAIL = 'jenkins@alidavid.hu' } stages { - // ETAP 1: Testy (Gatekeeper) - // Jeśli ten etap nie przejdzie, pipeline się zatrzyma i nic nie trafi na main. stage('Build & Test (E2E)') { + when { + branch 'develop' + } steps { script { - echo '--- 1. Start środowiska testowego ---' - - // Sprzątanie (na wypadek, gdyby coś zostało z poprzedniego uruchomienia) - sh 'docker compose -f docker-compose.test.yml down -v || true' - - // Uruchomienie testów - // --abort-on-container-exit: zamyka kontenery, gdy Cypress skończy - // --exit-code-from cypress: jeśli Cypress zwróci błąd, Jenkins przerwie zadanie - sh 'docker compose -f docker-compose.test.yml up --build --abort-on-container-exit --exit-code-from cypress' + echo '--- 1. Start środowiska testowego (pomijane na main) ---' + sh 'docker-compose -f docker-compose.test.yml down -v || true' + sh 'docker-compose -f docker-compose.test.yml up --build --abort-on-container-exit --exit-code-from cypress' } } } - // ETAP 2: Automatyczny Merge (Tylko dla gałęzi develop) stage('Merge Develop -> Main') { when { - // Uruchom ten krok TYLKO, gdy zmiany są na gałęzi 'develop' branch 'develop' } steps { - // Używamy klucza SSH z Jenkinsa do autoryzacji w Gitea sshagent(credentials: ['gitea-ssh-key']) { script { - echo '--- 2. Testy zaliczone. Scalanie do produkcji (main) ---' + echo '--- 2. Testy zaliczone. Scalanie do produkcji ---' - // Konfiguracja Gita wewnątrz runnera sh "git config user.name '${GIT_AUTHOR_NAME}'" sh "git config user.email '${GIT_AUTHOR_EMAIL}'" - // 1. Pobieramy aktualny stan repozytorium sh 'git fetch origin main' + sh 'git fetch origin develop' - // 2. Przełączamy się na main sh 'git checkout main' - // Upewniamy się, że mamy najnowszą wersję main sh 'git pull origin main' - - // 3. Scalamy develop do main - // --no-ff tworzy commit scalający (widać historię w grafie) sh 'git merge origin/develop --no-ff -m "Merge branch develop into main (Jenkins CI)"' - // 4. Wysyłamy zmiany do Gitea - // StrictHostKeyChecking=no zapobiega pytaniom o akceptację klucza hosta sh 'GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no" git push origin main' - - echo '--- SUKCES: Kod został zaktualizowany na gałęzi main ---' - - // Powrót na develop dla porządku - sh 'git checkout develop' } } } } + + // Tutaj w przyszłości będzie ETAP 3: Publish to NPM + // On będzie miał warunek: when { branch 'main' } } post { always { - // Bez względu na wynik (sukces/błąd), sprzątamy kontenery Dockerowe - echo '--- Sprzątanie po testach ---' - sh 'docker compose -f docker-compose.test.yml down -v' + // Sprzątanie wykonujemy tylko, jeśli testy w ogóle ruszyły + // Ale komenda down jest bezpieczna nawet jak nic nie działało + sh 'docker-compose -f docker-compose.test.yml down -v' } } } \ No newline at end of file From d874213bdf0ef0f42a5454470605af17bb0fdf82 Mon Sep 17 00:00:00 2001 From: David Ali Date: Mon, 5 Jan 2026 20:56:51 +0100 Subject: [PATCH 2/2] fix typo --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2db0727..91a6de6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -14,8 +14,8 @@ pipeline { steps { script { echo '--- 1. Start środowiska testowego (pomijane na main) ---' - sh 'docker-compose -f docker-compose.test.yml down -v || true' - sh 'docker-compose -f docker-compose.test.yml up --build --abort-on-container-exit --exit-code-from cypress' + sh 'docker compose -f docker-compose.test.yml down -v || true' + sh 'docker compose -f docker-compose.test.yml up --build --abort-on-container-exit --exit-code-from cypress' } } }