Composer knihovny
Naše interní knihovny jsou dostupné přes vlastní composer repozitář na adrese packages.esoul.cz.
Sestavení repozitáře probíhá automaticky v Jenkins pipeline přes Satis. Definice repozitáře se nachází na Githubu v repozitáři eSoul-cz/packages-repository.
Přidání balíčku do repozitáře
Vytvořte nový repozitář na Githubu pro vaši knihovnu. (balíčky můžou být veřejné nebo privátní podle potřeby)
V kořenovém adresáři repozitáře vytvořte validní
composer.jsons následujícím vzorovým obsahem:{ "name": "esoul/nazev-knihovny", "description": "Stručný popis knihovny", "version": "1.0.0", "type": "library", "license": "GPL-3.0", "authors": [ { "name": "Vaše Jméno", "email": "email@esoul.cz", "role": "Developer" } ], "require": { "php": ">=8.5" } }- `name` musí být ve formátu `esoul/nazev-knihovny`. - `license` může být `GPL-3.0`, `MIT` nebo `proprietary` podle potřeby. - `require` by měl obsahovat minimální požadavky na PHP verzi a případné závislosti. - `version` je potřeba, aby prošla striktní validace `composer.json` + není špatné jí udržovat pro přehlednost podle [semver](https://semver.org/).
V kořenovém adresáři repozitáře vytvořte
Jenkinsfiles následujícím vzorovým obsahem:pipeline { agent any environment { } stages { // Add your build/test stages here stage('Trigger Satis rebuild') { steps { build job: 'internal/eSoul Internal/packages-repository/master', wait: false } } } }- Jenkinsfile by měl obsahovat i stage pro automatické testy a až potom samotný stage, který spustí rebuild Satis repozitáře (spustí jinou Jenkins pipeline).
V eSoul-cz/packages-repository upravte
satis.jsona přidejte nový balíček do sekcerepositories:{ "repositories": [ { "type": "vcs", "url": "https://github.com/eSoul-cz/nazev-knihovny" } ] }Nyní se při každém pushi do vašeho repozitáře spustí Jenkins pipeline, která po úspěšném dokončení spustí rebuild Satis repozitáře a váš balíček bude dostupný na packages.esoul.cz.
Použití balíčku v projektu
Chcete-li použít interní balíček ve svém projektu, přidejte do composer.json vašeho projektu následující sekci repositories, pokud tam ještě není: