Compare commits

..

2 Commits

Author SHA1 Message Date
Jenkins Bot
380b123d80 Release: Merge develop to main 2026-01-05 21:53:10 +00:00
David Ali
2ef4a3352d fix: rebuild image 2026-01-05 22:52:36 +01:00

22
Jenkinsfile vendored
View File

@@ -15,29 +15,20 @@ pipeline {
branch 'develop' branch 'develop'
} }
steps { steps {
// 1. Uruchomienie Testów
script { script {
echo '--- [DEVELOP] 1. Uruchamianie testów E2E ---' echo '--- [DEVELOP] 1. Uruchamianie testów E2E ---'
sh 'docker compose -f docker-compose.test.yml down -v || true' 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 up --build --abort-on-container-exit --exit-code-from cypress'
} }
// 2. Scalanie (Bez zmiany wersji!)
sshagent(credentials: ['gitea-ssh-key']) { sshagent(credentials: ['gitea-ssh-key']) {
script { script {
echo '--- [DEVELOP] 2. Testy OK. Scalanie do Main ---' echo '--- [DEVELOP] 2. Testy OK. Scalanie do Main ---'
sh "git config user.name '${GIT_AUTHOR_NAME}'" sh "git config user.name '${GIT_AUTHOR_NAME}'"
sh "git config user.email '${GIT_AUTHOR_EMAIL}'" sh "git config user.email '${GIT_AUTHOR_EMAIL}'"
// Pobieramy main, scalamy i wysyłamy
sh 'git fetch origin main' sh 'git fetch origin main'
sh 'git checkout main' sh 'git checkout main'
sh 'git pull origin main' sh 'git pull origin main'
sh 'git merge origin/develop --no-ff -m "Release: Merge develop to main"' sh 'git merge origin/develop --no-ff -m "Release: Merge develop to main"'
// To uruchomi pipeline na branchu MAIN
sh 'GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no" git push origin main' sh 'GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no" git push origin main'
} }
} }
@@ -61,12 +52,13 @@ pipeline {
withCredentials([string(credentialsId: 'npm-token', variable: 'NPM_TOKEN')]) { withCredentials([string(credentialsId: 'npm-token', variable: 'NPM_TOKEN')]) {
script { script {
echo '--- [MAIN] Start procedury publikacji ---' echo '--- [MAIN] Start procedury publikacji ---'
// 1. Pobierz wersję
def localVersion = sh(script: "grep '\"version\":' package.json | cut -d\\\" -f4", returnStdout: true).trim() def localVersion = sh(script: "grep '\"version\":' package.json | cut -d\\\" -f4", returnStdout: true).trim()
echo "Lokalna wersja w package.json: ${localVersion}" echo "Lokalna wersja w package.json: ${localVersion}"
// 2. Sprawdź wersję (tu używamy -w, ale bez tokenu, bo view jest publiczne) echo '--- Przebudowywanie obrazu z aktualnym kodem ---'
sh 'docker compose -f docker-compose.test.yml build app'
def versionExists = false def versionExists = false
try { try {
sh "docker compose -f docker-compose.test.yml run --rm -w /app/wc-timer app npm view wc-timer@${localVersion} version" sh "docker compose -f docker-compose.test.yml run --rm -w /app/wc-timer app npm view wc-timer@${localVersion} version"
@@ -81,10 +73,6 @@ pipeline {
} else { } else {
echo "🚀 Wersja ${localVersion} jest nowa. Publikuję..." echo "🚀 Wersja ${localVersion} jest nowa. Publikuję..."
// 3. PUBLIKACJA "INJECTION METHOD"
// Nie montujemy pliku (-v).
// Przekazujemy token przez zmienną (-e).
// Tworzymy plik wewnątrz kontenera i publikujemy w jednej komendzie (sh -c).
sh """ sh """
docker compose -f docker-compose.test.yml run --rm \ docker compose -f docker-compose.test.yml run --rm \
-w /app/wc-timer \ -w /app/wc-timer \