52 Commits

Author SHA1 Message Date
dedd162bb5 Automatyczna zmiana: 1752168984 2025-07-10 19:36:24 +02:00
d273a4254f Automatyczna zmiana: 1752168860 2025-07-10 19:34:20 +02:00
2ddee5ddbb Automatyczna zmiana: 1752168728 2025-07-10 19:32:08 +02:00
033493b3f5 Automatyczna zmiana: 1752168604 2025-07-10 19:30:04 +02:00
039c9df549 Automatyczna zmiana: 1752168476 2025-07-10 19:27:56 +02:00
65992ecc75 Automatyczna zmiana: 1752168352 2025-07-10 19:25:52 +02:00
0347431341 Automatyczna zmiana: 1752168235 2025-07-10 19:23:55 +02:00
696d4557ab Automatyczna zmiana: 1752168113 2025-07-10 19:21:53 +02:00
d07f41ece6 Automatyczna zmiana: 1752167993 2025-07-10 19:19:53 +02:00
c2bc6761c3 Automatyczna zmiana: 1752167873 2025-07-10 19:17:53 +02:00
76383b030b Automatyczna zmiana: 1752167754 2025-07-10 19:15:54 +02:00
17ca39e4b0 Automatyczna zmiana: 1752167631 2025-07-10 19:13:51 +02:00
d04b88c6b8 Automatyczna zmiana: 1752167502 2025-07-10 19:11:42 +02:00
9a746322f9 Automatyczna zmiana: 1752167383 2025-07-10 19:09:43 +02:00
22bb43f63f Automatyczna zmiana: 1752167268 2025-07-10 19:07:48 +02:00
97716abc4c Automatyczna zmiana: 1752167129 2025-07-10 19:05:29 +02:00
501c9cc7c7 Automatyczna zmiana: 1752166998 2025-07-10 19:03:18 +02:00
b02c240e5b Automatyczna zmiana: 1752166872 2025-07-10 19:01:12 +02:00
d3cc1f6ff9 Automatyczna zmiana: 1752166750 2025-07-10 18:59:10 +02:00
ab75cec74a Automatyczna zmiana: 1752166465 2025-07-10 18:54:25 +02:00
36e7486726 Automatyczna zmiana: 1752093110 2025-07-09 22:31:50 +02:00
050916003f Automatyczna zmiana: 1752092853 2025-07-09 22:27:33 +02:00
6da6ea634e Automatyczna zmiana: 1752092595 2025-07-09 22:23:15 +02:00
3fadc63726 Automatyczna zmiana: 1752091222 2025-07-09 22:00:22 +02:00
d7da79d1d2 Automatyczna zmiana: 1752091083 2025-07-09 21:58:03 +02:00
4fbb54f446 Automatyczna zmiana: 1752090936 2025-07-09 21:55:36 +02:00
7034bf3dce Automatyczna zmiana: 1752090792 2025-07-09 21:53:12 +02:00
9ac5ca85bd Automatyczna zmiana: 1752090642 2025-07-09 21:50:42 +02:00
a514f374ed Automatyczna zmiana: 1752090505 2025-07-09 21:48:25 +02:00
5041f290fa Automatyczna zmiana: 1752090352 2025-07-09 21:45:52 +02:00
f364694af8 Automatyczna zmiana: 1752090205 2025-07-09 21:43:25 +02:00
d20a83431b Automatyczna zmiana: 1752090065 2025-07-09 21:41:05 +02:00
f845f5d7c2 Automatyczna zmiana: 1752089917 2025-07-09 21:38:37 +02:00
44ad02e6ae Automatyczna zmiana: 1752089436 2025-07-09 21:30:36 +02:00
745e9b5bac Automatyczna zmiana: 1752089288 2025-07-09 21:28:08 +02:00
225f998a8c Automatyczna zmiana: 1752088919 2025-07-09 21:21:59 +02:00
84c57feb84 Automatyczna zmiana: 1752088738 2025-07-09 21:18:58 +02:00
de405308bb Automatyczna zmiana: 1752088584 2025-07-09 21:16:24 +02:00
9c2848df4a Automatyczna zmiana: 1752088408 2025-07-09 21:13:28 +02:00
a7c6051995 Automatyczna zmiana: 1752088132 2025-07-09 21:08:52 +02:00
cbd6be779c Automatyczna zmiana: 1752087761 2025-07-09 21:02:41 +02:00
32e993da4d Automatyczna zmiana: 1752087570 2025-07-09 20:59:30 +02:00
32b9580a82 Automatyczna zmiana: 1752087363 2025-07-09 20:56:03 +02:00
abeb0e5271 Added script to trigger and measure deployment time 2025-07-09 20:50:42 +02:00
b7920e3644 Added build args to Dockerfile 2025-07-08 21:41:54 +02:00
e573c573bf Added build args 2025-07-08 21:31:02 +02:00
23814bef0c Moved clone command to sshagent block 2025-07-08 19:44:23 +02:00
49f19dabe6 Added saving known_hosts to file 2025-07-08 19:03:23 +02:00
1de32691c6 Corrected git remote command 2025-07-04 23:46:57 +02:00
f05d3940fa Modified git repo url to auth 2025-07-04 23:35:51 +02:00
023daf1d4b Added git clone and git push with credentials 2025-07-04 23:33:28 +02:00
e91273888a Changed command run for git container 2025-07-04 22:59:51 +02:00
5 changed files with 107 additions and 18 deletions

24
.jenkins/Jenkinsfile vendored
View File

@ -10,6 +10,7 @@ pipeline {
CLIENT_ID = 'c302726f-fafb-4143-94c1-67a70975574a'
DOCKER_REGISTRY_URL = 'marcin00.azurecr.io'
DOCKER_IMAGE = "${DOCKER_REGISTRY_URL}/user-microservice:${GIT_COMMIT}"
DEPLOY_REPO = 'ssh://git@srv22.mikr.us:20343/pikram/user-microservice-deploy.git'
}
stages {
@ -37,7 +38,7 @@ pipeline {
steps {
container('docker') {
sh '''
docker build -t ${DOCKER_IMAGE} .
docker build -t ${DOCKER_IMAGE} --build-arg APP_VERSION=${GIT_COMMIT} --build-arg BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") .
az login --identity --client-id ${CLIENT_ID}
az acr login --name ${ACR_NAME}
docker push ${DOCKER_IMAGE}
@ -48,10 +49,21 @@ pipeline {
stage('Commit new version to GitOps repo') {
steps {
container('git') {
withCredentials([string(credentialsId: 'gitea-known-host', variable: 'GITEA_KNOWN_HOST')]) {
sh '''
mkdir -p ~/.ssh
echo "$GITEA_KNOWN_HOST" >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
git config --global user.name "jenkins[bot]"
git config --global user.email "jenkins@marcin00.pl"
'''
sshagent(['gitea-deploy-key']) {
sh 'git clone ${DEPLOY_REPO} --branch jenkins-kubernetes'
}
}
dir('user-microservice-deploy') {
sh '''
# Podmień tag obrazu w pliku deploy.yaml
awk -v commit="$GIT_COMMIT" '
@ -65,7 +77,15 @@ pipeline {
{ print }
' deploy.yaml > deploy.tmp && mv deploy.tmp deploy.yaml
'''
sh 'git commit -am "JENKINS: Changed deployed version to $GIT_COMMIT"'
sshagent(['gitea-deploy-key']) {
sh '''
git add deploy.yaml
git diff-index --quiet HEAD || git commit -m "JENKINS: Changed deployed version to $GIT_COMMIT"
git push origin jenkins-kubernetes
'''
}
}
}
}
}

View File

@ -42,6 +42,8 @@ spec:
- name: git
image: alpine/git:latest
command:
- cat
tty: true
workingDir: /home/jenkins/agent
volumeMounts:

View File

@ -1,6 +1,18 @@
FROM python:3.11.7-alpine
# Wersja i data builda jako build-arg
ARG APP_VERSION=unknown
ARG BUILD_DATE=unknown
# Ustawiamy zmienne w ENV, by były dostępne w kontenerze
ENV APP_VERSION=$APP_VERSION
ENV BUILD_DATE=$BUILD_DATE
WORKDIR /app
COPY api .
RUN apk add --no-cache curl
RUN pip install -r requirements.txt
CMD python3 app.py

54
deployment_timer.sh Executable file
View File

@ -0,0 +1,54 @@
#!/bin/bash
# === KONFIGURACJA ===
APP_URL="https://user-microservice.marcin00.pl/version"
MARKER_FILE="version_marker.txt"
OUTPUT_FILE="deployment_times.csv"
CHECK_INTERVAL=1 # sekundy
# === POBRANIE AKTUALNEJ WERSJI APLIKACJI ===
echo "[INFO] Pobieranie aktualnej wersji z /version..."
OLD_VERSION=$(curl -s "$APP_URL" | jq -r '.version')
if [[ -z "$OLD_VERSION" ]]; then
echo "[ERROR] Nie udało się pobrać aktualnej wersji aplikacji."
exit 1
fi
echo "[INFO] Aktualna wersja: $OLD_VERSION"
# === Modyfikacja pliku, commit i push ===
TIMESTAMP=$(date +%s)
echo "$TIMESTAMP" > "$MARKER_FILE"
git add "$MARKER_FILE"
git commit -m "Automatyczna zmiana: $TIMESTAMP"
START_TIME=$(date +%s)
echo "[INFO] Wykonuję git push..."
git push
if [[ $? -ne 0 ]]; then
echo "[ERROR] Push nie powiódł się."
exit 1
fi
echo "[INFO] Oczekiwanie na wdrożenie nowej wersji..."
# === Odpytywanie endpointa /version ===
while true; do
sleep $CHECK_INTERVAL
NEW_VERSION=$(curl -s "$APP_URL" | jq -r '.version')
if [[ "$NEW_VERSION" != "$OLD_VERSION" ]]; then
END_TIME=$(date +%s)
DURATION=$((END_TIME - START_TIME))
echo "[INFO] Nowa wersja wdrożona: $NEW_VERSION"
echo "[INFO] Czas wdrożenia: $DURATION sekund"
echo "$START_TIME,$END_TIME,$DURATION,$OLD_VERSION,$NEW_VERSION" >> "$OUTPUT_FILE"
break
else
echo "[WAIT] Czekam... ($NEW_VERSION)"
fi
done

1
version_marker.txt Normal file
View File

@ -0,0 +1 @@
1752168984