113 Commits

Author SHA1 Message Date
d6ade884cf Automatyczna zmiana: 1753736103
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 22:55:03 +02:00
b890fdb29a Automatyczna zmiana: 1753735432
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 22:43:52 +02:00
e18fc0cdc9 Automatyczna zmiana: 1753735101
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 22:38:21 +02:00
39eacf7df9 Automatyczna zmiana: 1753734759
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 22:32:39 +02:00
8572d8834a Automatyczna zmiana: 1753734421
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 22:27:01 +02:00
5e726bbed7 Automatyczna zmiana: 1753734075
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 22:21:15 +02:00
aaeeafdb2f Automatyczna zmiana: 1753733719
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 22:15:19 +02:00
a74627b567 Automatyczna zmiana: 1753733365
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 22:09:25 +02:00
e31a270e32 Automatyczna zmiana: 1753732599
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:56:39 +02:00
1d36b1cf97 Automatyczna zmiana: 1753732590
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-28 21:56:30 +02:00
ae4c508b1f Automatyczna zmiana: 1753732234
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:50:34 +02:00
4b36e56b2d Automatyczna zmiana: 1753732229
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-28 21:50:29 +02:00
e320947a94 Automatyczna zmiana: 1753731887
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:44:47 +02:00
f0ff6050c1 Automatyczna zmiana: 1753731880
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-28 21:44:40 +02:00
dda7cec696 Automatyczna zmiana: 1753731525
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:38:45 +02:00
dd41969be0 Automatyczna zmiana: 1753731518
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-28 21:38:38 +02:00
392bb45caa Automatyczna zmiana: 1753731182
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:33:02 +02:00
e480b9a010 Automatyczna zmiana: 1753730840
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:27:20 +02:00
4b38189a87 Automatyczna zmiana: 1753730833
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-28 21:27:13 +02:00
46a5811bd1 Automatyczna zmiana: 1753730494
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:21:34 +02:00
bc8aa5e39d Automatyczna zmiana: 1753730135
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:15:35 +02:00
8271e8e5a6 Automatyczna zmiana: 1753729792
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:09:52 +02:00
dd6b305fbe Automatyczna zmiana: 1753729784
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-28 21:09:44 +02:00
19856922b1 Automatyczna zmiana: 1753729446
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 21:04:06 +02:00
4eb2fa7564 Automatyczna zmiana: 1753729438
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-28 21:03:58 +02:00
a3e15913c1 Automatyczna zmiana: 1753729112
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 20:58:32 +02:00
829e2540e9 Automatyczna zmiana: 1753728767
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 20:52:47 +02:00
7781eaaa0b Automatyczna zmiana: 1753728411
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 20:46:51 +02:00
8e99f545c7 Automatyczna zmiana: 1753726377
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 20:12:57 +02:00
2da59e2250 Automatyczna zmiana: 1753725775
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 20:02:55 +02:00
759fc8afc8 Automatyczna zmiana: 1753725292
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 19:54:52 +02:00
b5be4f4f75 Automatyczna zmiana: 1753724795
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-28 19:46:35 +02:00
4d64e51771 Automatyczna zmiana: 1753632242
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 18:04:02 +02:00
7c31f88080 Automatyczna zmiana: 1753631155
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 17:45:55 +02:00
9fde6fe98d Automatyczna zmiana: 1753631147
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-27 17:45:47 +02:00
208adc8258 Automatyczna zmiana: 1753630796
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 17:39:56 +02:00
93bb32c86f Automatyczna zmiana: 1753630789
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-27 17:39:49 +02:00
6b5dafcbf5 Automatyczna zmiana: 1753630408
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 17:33:28 +02:00
ed95b4ce91 Automatyczna zmiana: 1753630035
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 17:27:15 +02:00
09ebc9f4b4 Automatyczna zmiana: 1753629562
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 17:19:22 +02:00
963a192935 Automatyczna zmiana: 1753628608
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 17:03:28 +02:00
0acfabc0ee Automatyczna zmiana: 1753627976
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 16:52:57 +02:00
acfc9fab90 Automatyczna zmiana: 1753626456
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 16:27:36 +02:00
ae2a7d7608 Automatyczna zmiana: 1753625345
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 16:09:05 +02:00
ddfd529fff Automatyczna zmiana: 1753624962
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 16:02:42 +02:00
ce82dbe1cf Automatyczna zmiana: 1753624408
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 15:53:28 +02:00
ad09eab10b Automatyczna zmiana: 1753624006
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 15:46:46 +02:00
58fac1fd68 Automatyczna zmiana: 1753623624
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 15:40:24 +02:00
fca0219235 Updated path in repo
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 14:56:00 +02:00
39cf921a19 Changed deploy repo branch
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-27 14:46:42 +02:00
37aa5692ef Automatyczna zmiana: 1753616849
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 13:47:29 +02:00
c266121cb9 Automatyczna zmiana: 1753616502
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 13:41:42 +02:00
7c5845b059 Automatyczna zmiana: 1753616108
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 13:35:08 +02:00
de2211d324 Automatyczna zmiana: 1753615758
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 13:29:18 +02:00
59ce5f2159 Automatyczna zmiana: 1753615368
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 13:22:48 +02:00
a01e83f40c Automatyczna zmiana: 1753614999
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 13:16:39 +02:00
e6f5f61ccd Automatyczna zmiana: 1753614530
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 13:08:50 +02:00
aeb137fb20 Automatyczna zmiana: 1753614180
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 13:03:00 +02:00
ff5d0773c8 Automatyczna zmiana: 1753613799
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 12:56:39 +02:00
42e2812f42 Automatyczna zmiana: 1753613462
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 12:51:02 +02:00
f284adc213 Automatyczna zmiana: 1753613114
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 12:45:14 +02:00
c3014d63aa Automatyczna zmiana: 1753612757
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 12:39:17 +02:00
552278e47a Automatyczna zmiana: 1753612361
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 12:32:41 +02:00
97f3b3432a Automatyczna zmiana: 1753611948
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 12:25:48 +02:00
c08099f81b Automatyczna zmiana: 1753611496
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 12:18:16 +02:00
e06466e54a Automatyczna zmiana: 1753610498
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 12:01:38 +02:00
27cdaa7c0e Automatyczna zmiana: 1753610020
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 11:53:40 +02:00
feefee6cc9 Automatyczna zmiana: 1753609102
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 11:38:22 +02:00
8ed4522df3 Automatyczna zmiana: 1753608508
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 11:28:28 +02:00
3d82736e2d Automatyczna zmiana: 1753607776
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 11:16:16 +02:00
156c475b82 Changed deploy repo branch
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-27 10:58:58 +02:00
78613948f5 Added manual trigger for pipeline
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-27 09:45:06 +02:00
6b0e6486d0 Automatyczna zmiana: 1753553628
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 20:13:48 +02:00
a51288df7e Automatyczna zmiana: 1753553193
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 20:06:33 +02:00
2bb5301264 Automatyczna zmiana: 1753552782
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 19:59:42 +02:00
1f57e0ba7f Automatyczna zmiana: 1753552092
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 19:48:12 +02:00
d420e62aac Automatyczna zmiana: 1753547089
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 18:24:49 +02:00
9a37f25948 Automatyczna zmiana: 1753547083
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-26 18:24:43 +02:00
9ba8c09519 Automatyczna zmiana: 1753546725
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 18:18:45 +02:00
de7040cc0a Automatyczna zmiana: 1753546382
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 18:13:02 +02:00
6127e7a19c Automatyczna zmiana: 1753546027
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 18:07:07 +02:00
9b26757c1c Automatyczna zmiana: 1753546019
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-26 18:06:59 +02:00
88aec64018 Automatyczna zmiana: 1753545670
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 18:01:10 +02:00
829e8f09a3 Automatyczna zmiana: 1753545313
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:55:13 +02:00
75aa55b698 Automatyczna zmiana: 1753544961
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:49:21 +02:00
532010790d Automatyczna zmiana: 1753544601
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:43:21 +02:00
71579de019 Automatyczna zmiana: 1753544244
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:37:24 +02:00
d0ae8432af Automatyczna zmiana: 1753543913
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:31:53 +02:00
6aad4f0e7f Automatyczna zmiana: 1753543905
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-26 17:31:45 +02:00
f6215cd286 Automatyczna zmiana: 1753543565
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:26:05 +02:00
7a8cb55b70 Automatyczna zmiana: 1753543214
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:20:14 +02:00
1fd5bafdbd Automatyczna zmiana: 1753542850
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:14:10 +02:00
9f50ed2f60 Automatyczna zmiana: 1753542843
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-26 17:14:03 +02:00
7919c055af Automatyczna zmiana: 1753542507
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:08:27 +02:00
291f8229ac Automatyczna zmiana: 1753542159
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 17:02:39 +02:00
cedc4c52e1 Automatyczna zmiana: 1753541713
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 16:55:13 +02:00
af829bc5bb Added overwrite output lines during waiting
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 16:47:54 +02:00
66e2a0e3b9 Merge branch 'dev' into woodpecker
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 16:35:10 +02:00
6bfcbb1c96 Automatyczna zmiana: 1753539316
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-26 16:15:16 +02:00
7072671564 Added dockerd command
All checks were successful
ci/woodpecker/push/build Pipeline was successful
2025-07-22 19:36:56 +02:00
a2c2e39a1b Corrected commands variables expansion
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-22 19:30:03 +02:00
55eeec730d Added userns-mode annotation
Some checks failed
ci/woodpecker/push/build Pipeline failed
2025-07-21 15:39:06 +02:00
e6c68f839a Added script to trigger and measure deployment time 2025-07-20 09:54:38 +02:00
fcb93a5cf8 Added build args to Dockerfile 2025-07-20 09:54:31 +02:00
c9b1dac864 Added endpoint to fetch app version 2025-07-03 22:47:21 +02:00
cd4ab3fd27 Handled more errors during db initialization 2025-06-12 18:42:07 +00:00
301cf5922e Changed docker image base to Alpine and added curl 2025-06-11 22:15:37 +00:00
479ec4f917 Added healthcheck 2025-06-11 22:04:35 +00:00
3f40a6126c Added more descriptions of functions 2025-06-11 20:04:04 +00:00
dd9e9ce110 Improved function body 2025-06-11 19:57:15 +00:00
d3d3c98f99 Moved wait_for_db function to utils module 2025-06-11 19:48:58 +00:00
9e010ed389 Implemented waiting for db readiness 2025-06-11 19:43:47 +00:00
636a382cf5 Deleted jenkins pipeline from main branch 2025-06-11 17:13:27 +00:00
8 changed files with 97 additions and 16 deletions

View File

@ -1,5 +1,5 @@
when:
- event: push
- event: [push, manual]
branch: woodpecker
steps:
@ -17,20 +17,24 @@ steps:
environment:
ACR_NAME: marcin00
CLIENT_ID: c302726f-fafb-4143-94c1-67a70975574a
DOCKER_IMAGE: marcin00.azurecr.io/user-microservice:${CI_COMMIT_SHA}
commands:
- docker build -t ${DOCKER_IMAGE} --build-arg APP_VERSION=${CI_COMMIT_SHA} --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}
- dockerd &
- export DOCKER_IMAGE=marcin00.azurecr.io/user-microservice:${CI_COMMIT_SHA}
- docker build -t $DOCKER_IMAGE --build-arg APP_VERSION=${CI_COMMIT_SHA} --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
backend_options:
kubernetes:
annotations:
io.kubernetes.cri-o.userns-mode: "auto:size=65536"
runtimeClassName: sysbox-runc
- name: gitops-commit
image: alpine/git
environment:
DEPLOY_REPO: ssh://git@srv22.mikr.us:20343/pikram/user-microservice-deploy.git
DEPLOY_REPO_URL: ssh://git@srv22.mikr.us:20343/pikram/user-microservice-deploy.git
DEPLOY_REPO_BRANCH: woodpecker-fluxcd-deploy
GITEA_DEPLOY_KEY:
from_secret: gitea-deploy-key
GITEA_KNOWN_HOST:
@ -38,17 +42,17 @@ steps:
commands:
- mkdir -p ~/.ssh
- echo "${GITEA_KNOWN_HOST}" >> ~/.ssh/known_hosts
- echo "$GITEA_KNOWN_HOST" >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
- echo "${GITEA_DEPLOY_KEY}" > ~/.ssh/id_rsa
- echo "$GITEA_DEPLOY_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- git config --global user.name "woodpecker[bot]"
- git config --global user.email "woodpecker@marcin00.pl"
- git clone "${DEPLOY_REPO}" --branch woodpecker-deploy
- cd user-microservice-deploy
- git clone $DEPLOY_REPO_URL --branch $DEPLOY_REPO_BRANCH
- cd user-microservice-deploy/apps/user-microservice
- |
awk -v commit="$CI_COMMIT_SHA" '
@ -64,4 +68,4 @@ steps:
- git add deploy.yaml
- 'git diff-index --quiet HEAD || git commit -m "WOODPECKER: Changed deployed version to $CI_COMMIT_SHA"'
- git push origin woodpecker-deploy
- git push origin $DEPLOY_REPO_BRANCH

View File

@ -4,7 +4,8 @@ from flask_jwt_extended import JWTManager
from jwt import ExpiredSignatureError
from models import db, RevokedToken
import os
from utils import init_db
from tech_views import tech_bp
from utils import init_db, wait_for_db
from views import user_bp
from werkzeug.exceptions import HTTPException
@ -26,6 +27,7 @@ def create_app(config_name="default"):
# Blueprints registration
app.register_blueprint(user_bp)
app.register_blueprint(tech_bp)
# Database and JWT initialization
db.init_app(app)
@ -53,6 +55,7 @@ def create_app(config_name="default"):
# Fill database by initial values (only if we are not testing)
with app.app_context():
wait_for_db(max_retries=100)
db.create_all()
if config_name != "testing":
init_db()

20
api/tech_views.py Normal file
View File

@ -0,0 +1,20 @@
from flask import Blueprint, jsonify
from models import db
from sqlalchemy import text
from utils import db_ready
# Blueprint with technical endpoints
tech_bp = Blueprint('tech_bp', __name__)
@tech_bp.route('/health', methods=['GET'])
def health_check():
"Check if service works and database is functional"
try:
with db.engine.connect() as connection:
connection.execute(text("SELECT 1"))
return jsonify(status="healthy"), 200
except Exception:
if db_ready:
return jsonify(status="unhealthy"), 500
else:
return jsonify(status="starting"), 503

View File

@ -2,17 +2,22 @@ from flask import abort
from flask_jwt_extended import get_jwt_identity
from models import User, db
import os
from sqlalchemy import text
from sqlalchemy.exc import DatabaseError, InterfaceError
import time
from werkzeug.security import generate_password_hash
db_ready = False
def admin_required(user_id, message='Access denied.'):
"Check if common user try to make administrative action."
user = db.session.get(User, user_id)
if user is None or user.role != "Administrator":
abort(403, message)
def validate_access(owner_id, message='Access denied.'):
# Check if user try to access or edit resource that does not belong to them
"Check if user try to access or edit resource that does not belong to them."
logged_user_id = int(get_jwt_identity())
logged_user_role = db.session.get(User, logged_user_id).role
if logged_user_role != "Administrator" and logged_user_id != owner_id:
@ -27,6 +32,20 @@ def get_user_or_404(user_id):
return user
def wait_for_db(max_retries):
"Try to connect with database <max_retries> times."
global db_ready
for _ in range(max_retries):
try:
with db.engine.connect() as connection:
connection.execute(text("SELECT 1"))
db_ready = True
return
except DatabaseError | InterfaceError:
time.sleep(3)
raise Exception("Failed to connect to database.")
def init_db():
"""Create default admin account if database is empty"""
with db.session.begin():

View File

@ -2,6 +2,7 @@ from flask import Blueprint, jsonify, request, abort
from flask_jwt_extended import create_access_token, set_access_cookies, jwt_required, \
verify_jwt_in_request, get_jwt_identity, unset_jwt_cookies, get_jwt
from models import db, RevokedToken, User
import os
from utils import admin_required, validate_access, get_user_or_404
from werkzeug.security import check_password_hash, generate_password_hash
@ -110,3 +111,10 @@ def user_logout():
response = jsonify({"msg": "User logged out successfully."})
unset_jwt_cookies(response)
return response
@user_bp.route('/version', methods=['GET'])
def version():
return jsonify({
"version": os.getenv("APP_VERSION", "unknown"),
"build_time": os.getenv("BUILD_DATE", "unknown")
})

View File

@ -36,19 +36,30 @@ 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))
echo "[INFO] Nowa wersja wdrożona: $NEW_VERSION"
# 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
echo "[WAIT] Czekam... ($NEW_VERSION)"
# Nadpisujemy TYLKO linię z licznikiem
printf "\r[WAIT] Czekam... %ds" "$WAITED"
fi
done
# Żeby kursor przeszedł do nowej linii po zakończeniu
echo ""

View File

@ -7,9 +7,24 @@ services:
build: .
env_file:
- api/.env
ports:
- 80:80
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/health"]
interval: 10s
timeout: 5s
retries: 5
start_period: 15s
db:
container_name: db
hostname: db
image: mysql:latest
env_file:
- db/.env
ports:
- 3306:3306
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 10s
timeout: 5s
retries: 5

1
version_marker.txt Normal file
View File

@ -0,0 +1 @@
1753736103