Preskoči na vsebino

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: ![](./.badges/tests/<badge>.svg)

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:

![Tests](./.badges/tests/summary.svg)
![my_addon](./.badges/tests/my_addon.svg)

3. Izbirni commit in push

Zunanje pisanje: --commit ustvari 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

![Overall Tests](./.badges/tests/summary.svg)
![Module A](./.badges/tests/module_a.svg)
![Module B](./.badges/tests/module_b.svg)

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.