76 Commits

Author SHA1 Message Date
33fc7f66f9 Automatyczna zmiana: 1752257920 2025-07-11 20:18:40 +02:00
1426c8aff2 Automatyczna zmiana: 1752257802 2025-07-11 20:16:42 +02:00
7a26738ec7 Automatyczna zmiana: 1752257685 2025-07-11 20:14:45 +02:00
9168be6c3d Automatyczna zmiana: 1752257573 2025-07-11 20:12:53 +02:00
a8ab29d019 Automatyczna zmiana: 1752257456 2025-07-11 20:10:56 +02:00
40aba0972c Automatyczna zmiana: 1752257341 2025-07-11 20:09:01 +02:00
7735b0e283 Automatyczna zmiana: 1752257226 2025-07-11 20:07:06 +02:00
253b6c54a0 Automatyczna zmiana: 1752257113 2025-07-11 20:05:13 +02:00
1cc42b18b7 Automatyczna zmiana: 1752256999 2025-07-11 20:03:19 +02:00
54699d67f9 Automatyczna zmiana: 1752256877 2025-07-11 20:01:17 +02:00
8c0a55838e Automatyczna zmiana: 1752256761 2025-07-11 19:59:21 +02:00
e4d390a096 Automatyczna zmiana: 1752256633 2025-07-11 19:57:13 +02:00
0543580669 Automatyczna zmiana: 1752256510 2025-07-11 19:55:10 +02:00
453914a73b Automatyczna zmiana: 1752256388 2025-07-11 19:53:08 +02:00
640dae99f9 Automatyczna zmiana: 1752256251 2025-07-11 19:50:51 +02:00
5e4f750a42 Automatyczna zmiana: 1752256138 2025-07-11 19:48:58 +02:00
496c353ca1 Automatyczna zmiana: 1752256017 2025-07-11 19:46:57 +02:00
d060b629cf Automatyczna zmiana: 1752255893 2025-07-11 19:44:53 +02:00
858eacdc3f Automatyczna zmiana: 1752255763 2025-07-11 19:42:43 +02:00
f5398c1a9c Automatyczna zmiana: 1752255584 2025-07-11 19:39:44 +02:00
d855e795e2 Added 'cd' command to sh blocks 2025-07-10 22:26:13 +02:00
2f0ab04997 Replaced dir block by 'cd' command 2025-07-10 22:16:48 +02:00
c37d92a4cf Updated paths and branch in deploy repo 2025-07-10 21:43:48 +02:00
d8617d01eb Added overwrite output lines during waiting 2025-07-10 21:35:31 +02:00
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 106 additions and 7 deletions

33
.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,11 +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 fluxcd'
}
}
sh '''
git config --global user.name "jenkins[bot]"
git config --global user.email "jenkins@marcin00.pl"
'''
sh '''
cd user-microservice-deploy/apps/user-microservice
# Podmień tag obrazu w pliku deploy.yaml
awk -v commit="$GIT_COMMIT" '
$0 ~ /name:[[:space:]]*api/ { in_api_container = 1; print; next }
@ -64,8 +75,16 @@ 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 '''
cd user-microservice-deploy/apps/user-microservice
git add deploy.yaml
git diff-index --quiet HEAD || git commit -m "JENKINS: Changed deployed version to $GIT_COMMIT"
git push origin fluxcd
'''
}
}
}
}

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

65
deployment_timer.sh Executable file
View File

@ -0,0 +1,65 @@
#!/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 ===
WAITED=0
echo "[WAIT] Oczekiwanie na nową wersję..."
while true; do
sleep $CHECK_INTERVAL
WAITED=$((WAITED + 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))
# Nadpisujemy linię z licznikiem
printf "\r[INFO] Nowa wersja wdrożona po %ds: %s\n" "$WAITED" "$NEW_VERSION"
echo "[INFO] Czas wdrożenia: $DURATION sekund"
echo "$START_TIME,$END_TIME,$DURATION,$OLD_VERSION,$NEW_VERSION" >> "$OUTPUT_FILE"
break
else
# Nadpisujemy TYLKO linię z licznikiem
printf "\r[WAIT] Czekam... %ds" "$WAITED"
fi
done
# Żeby kursor przeszedł do nowej linii po zakończeniu
echo ""

1
version_marker.txt Normal file
View File

@ -0,0 +1 @@
1752257920