Compare commits
4 Commits
cb5613a83a
...
2e5415ad55
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2e5415ad55 | ||
|
|
0e5316c88b | ||
|
|
39c3aa5000 | ||
|
|
d314aab25d |
@@ -6,6 +6,7 @@ WORKDIR /app/wc-timer
|
||||
|
||||
# Kopiowanie plików manifestu i instalacja zależności
|
||||
COPY package.json ./
|
||||
COPY README.md ./
|
||||
RUN npm install
|
||||
|
||||
# Kopiowanie reszty plików projektu (kod źródłowy)
|
||||
|
||||
100
Jenkinsfile
vendored
100
Jenkinsfile
vendored
@@ -51,59 +51,59 @@ pipeline {
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// ETAP 2: MAIN (Weryfikacja wersji i Publikacja w Dockerze)
|
||||
// =========================================================
|
||||
stage('CD: Publish to NPM (Main)') {
|
||||
when {
|
||||
branch 'main'
|
||||
// ETAP 2: MAIN (Weryfikacja wersji i Publikacja w Dockerze)
|
||||
// =========================================================
|
||||
stage('CD: Publish to NPM (Main)') {
|
||||
when {
|
||||
branch 'main'
|
||||
}
|
||||
steps {
|
||||
withCredentials([string(credentialsId: 'npm-token', variable: 'NPM_TOKEN')]) {
|
||||
script {
|
||||
echo '--- [MAIN] Start procedury publikacji ---'
|
||||
|
||||
// 1. Pobierz wersję
|
||||
def localVersion = sh(script: "grep '\"version\":' package.json | cut -d\\\" -f4", returnStdout: true).trim()
|
||||
echo "Lokalna wersja w package.json: ${localVersion}"
|
||||
|
||||
// 2. Sprawdź wersję (tu używamy -w, ale bez tokenu, bo view jest publiczne)
|
||||
def versionExists = false
|
||||
try {
|
||||
sh "docker compose -f docker-compose.test.yml run --rm -w /app/wc-timer app npm view wc-timer@${localVersion} version"
|
||||
versionExists = true
|
||||
} catch (err) {
|
||||
versionExists = false
|
||||
}
|
||||
steps {
|
||||
withCredentials([string(credentialsId: 'npm-token', variable: 'NPM_TOKEN')]) {
|
||||
script {
|
||||
echo '--- [MAIN] Start procedury publikacji ---'
|
||||
|
||||
// 1. Pobierz wersję
|
||||
def localVersion = sh(script: "grep '\"version\":' package.json | cut -d\\\" -f4", returnStdout: true).trim()
|
||||
echo "Lokalna wersja w package.json: ${localVersion}"
|
||||
|
||||
// 2. Sprawdź wersję (tu używamy -w, ale bez tokenu, bo view jest publiczne)
|
||||
def versionExists = false
|
||||
try {
|
||||
sh "docker compose -f docker-compose.test.yml run --rm -w /app/wc-timer app npm view wc-timer@${localVersion} version"
|
||||
versionExists = true
|
||||
} catch (err) {
|
||||
versionExists = false
|
||||
}
|
||||
|
||||
if (versionExists) {
|
||||
echo "❌ BŁĄD: Wersja ${localVersion} jest już opublikowana w NPM!"
|
||||
error("Przerwano publikację: Wersja ${localVersion} już istnieje.")
|
||||
} else {
|
||||
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 """
|
||||
docker compose -f docker-compose.test.yml run --rm \
|
||||
-w /app/wc-timer \
|
||||
-e NPM_TOKEN=${NPM_TOKEN} \
|
||||
app \
|
||||
sh -c "echo '//registry.npmjs.org/:_authToken=\${NPM_TOKEN}' > .npmrc && npm publish --access public"
|
||||
"""
|
||||
|
||||
echo "✅ SUKCES: Wersja ${localVersion} została opublikowana."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
echo '--- [MAIN] Sprzątanie ---'
|
||||
sh 'docker compose -f docker-compose.test.yml down -v'
|
||||
}
|
||||
if (versionExists) {
|
||||
echo "❌ BŁĄD: Wersja ${localVersion} jest już opublikowana w NPM!"
|
||||
error("Przerwano publikację: Wersja ${localVersion} już istnieje.")
|
||||
} else {
|
||||
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 """
|
||||
docker compose -f docker-compose.test.yml run --rm \
|
||||
-w /app/wc-timer \
|
||||
-e NPM_TOKEN=${NPM_TOKEN} \
|
||||
app \
|
||||
sh -c "echo '//registry.npmjs.org/:_authToken=\${NPM_TOKEN}' > .npmrc && npm publish --access public"
|
||||
"""
|
||||
|
||||
echo "✅ SUKCES: Wersja ${localVersion} została opublikowana."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
echo '--- [MAIN] Sprzątanie ---'
|
||||
sh 'docker compose -f docker-compose.test.yml down -v'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wc-timer",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"description": "A lightweight, dependency-free countdown timer Web Component.",
|
||||
"type": "module",
|
||||
"main": "src/wc-timer.js",
|
||||
@@ -8,7 +8,8 @@
|
||||
".": "./src/wc-timer.js"
|
||||
},
|
||||
"files": [
|
||||
"src"
|
||||
"src/wc-timer.js",
|
||||
"README.md"
|
||||
],
|
||||
"scripts": {
|
||||
"test": "echo 'Tests are running in Docker environment' && exit 0"
|
||||
|
||||
Reference in New Issue
Block a user