publish_repo_badges.sh
Objavljanje lokalnih testnih značk za PMIVerse in PMISuite.
Namen
publish_repo_badges.sh kopira najnovejše značke pytest v SVG, ustvarjene z run_pytest_repo.sh, v .badges/tests/ ciljnega repozitorija. README jih izriše neposredno iz repozitorija, podobno samozadostnemu sistemu OCA, brez zunanjega gostovanja CI. Izbirno izvede tudi Git commit in push.
Potek značk
run_pytest_repo.sh → ustvari SVG
→ /srv/pmiverse/logs/tests/latest/badges/
→ publish_repo_badges.sh → repo/.badges/tests/
→ README.md: 
Izris je ponovljiv in prenosljiv med namestitvami.
Zmožnosti
1. Objava značk
Kopira vse povzetkovne in posamezne SVG iz dnevniške mape. Privzeti vir:
/srv/pmiverse/logs/tests/latest/badges
2. Integracija repozitorija
Ustvari ali posodobi <repo>/.badges/tests/. README jih lahko navaja tako:


3. Izbirni commit in push
Zunanje pisanje:
--commitustvari potrditev in jo pošlje. Pred uporabo pridobite izrecno odobritev; za samo lokalno kopiranje možnost izpustite.
Doda .badges/tests/*.svg v indeks, ustvari vzdrževalni commit in ga pošlje na izbrano vejo. Če je podan --branch, pred potrditvijo preklopi vejo.
4. Avtomatizacija
Možna je ročna uporaba ali vključitev v cevovod CI za samodejno objavljanje.
Uporaba
publish_repo_badges.sh --repo <repo_root> \
[--source <logs_dir>] \
[--commit] \
[--branch <name>]
Argumenti
| Možnost | Pomen |
|---|---|
--repo <path> |
Obvezni koren ciljnega repozitorija. |
--source <path> |
Vir značk, privzeto /srv/pmiverse/logs/tests/latest/badges. |
--commit |
Potrdi in pošlje posodobitve značk. |
--branch <name> |
Ciljna veja, privzeto trenutni HEAD. |
-h, --help |
Pomoč skripte. |
Primeri
1. Kopiranje v repozitorij
./publish_repo_badges.sh --repo /srv/repos/my_project
2. Drug vir dnevnikov
./publish_repo_badges.sh --repo my_repo --source /tmp/test_badges/
3. Kopiranje in pošiljanje na trenutno vejo
./publish_repo_badges.sh --repo my_repo --commit
4. Kopiranje in pošiljanje na izbrano vejo
./publish_repo_badges.sh --repo my_repo --commit --branch staging
Delovanje
Zagotovi ciljno .badges/tests, kopira vse izvorne *.svg, ob --commit po potrebi preklopi vejo, izvede add/commit/push ter preskoči commit, če sprememb ni. Izhod beleži na stdout za CI.
Zahteve
Bash 4+, Git za commit/push in že ustvarjene značke SVG iz run_pytest_repo.sh ali enakovrednega generatorja.
Vključitev v README.md
Primer:
## Test Status



Povezave kažejo zadnje objavljene značke.
Napake
| Pogoj | Vedenje |
|---|---|
Manjka --repo |
Izhod z napako. |
| Manjka izvorna mapa značk | Izhod z napako. |
| Ni SVG | Ni kopiranja; ni usodna napaka. |
| Zahtevan commit brez sprememb značk | Commit se ne ustvari. |
| Neveljavno ime veje | git checkout odpove. |
Priporočena uporaba CI/CD
run_pytest_repo.sh # ustvari značke
publish_repo_badges.sh --repo $REPO --commit --branch $BRANCH
Tako značke odražajo rezultate zadnjega zagona CI.
Licenca
Copyright (c) 2025 LUXIM d.o.o., Slovenia --- Matjaž Mozetič Del PMISuite.
Licenčna izjava repozitorija je v korenskem README.md.