Ţĥé ļööþ îñ ÇÎ
Éṽéŕý ḿéŕĝé çĥàñĝéš šöüŕçé çöñţéñţ, àñđ îţš ţŕàñšļàţîöñš, ţéŕḿš àñđ ṽöîçé çĥéçķš ƒàļļ ƃéĥîñđ. ÇÎ çàñ çàţçĥ ţĥéḿ üþ öñ éṽéŕý çĥàñĝé öŕ öñ à šçĥéđüļé ŵîţĥ ţĥé ķàþî ļööþ. Îţéḿš à ḿàçĥîñé çàññöţ đéçîđé ŵàîţ ƒöŕ ŕéṽîéŵ îñ ţĥé ţéàḿ'š ŕéṽîéŵ šéššîöñ öñ ţĥé šéŕṽéŕ, àñđ ţĥé šĥîþ ĝàţé þŕöţéçţš ŕéļéàšéš. Àñ öŕđîñàŕý ƃüîļđ þàššéš ŵĥîļé ţàŕĝéţ ļàñĝüàĝéš àŕé ƃéĥîñđ.
Öñ à þŕöĵéçţ çöññéçţéđ ţö à Ƃöŵŕàîñ šéŕṽéŕ, à ÇÎ ŕüñ öƒ kapi up éẋéçüţéš öñ
ţĥé šéŕṽéŕ ṽéñüé. Ţĥé ĵöƃ þüšĥéš ţĥé đŕîƒţ, ţĥé šéŕṽéŕ ŕüñš ţĥé ļööþ ŵîţĥ
ţĥé öŕĝàñîžàţîöñ'š ÀÎ ķéýš, šĥàŕéđ çöñţéñţ ḿéḿöŕý àñđ ţéŕḿš, àñđ ţĥé ŕéšüļţš
çöḿé ƃàçķ ţö ţĥé ŵöŕķîñĝ ţŕéé. Ţĥé ŕüññéŕ ĥöļđš à šéŕṽéŕ ţöķéñ àñđ ñö
þŕöṽîđéŕ ķéýš.
Ţĥé šéçţîöñš ƃéļöŵ ļîšţ ţĥé ÇÎ šüŕƒàçéš àñđ ţĥé éẋîţ çöđéš ţĥéý šĥàŕé. Ţĥé ķàþî šîţé ĥàš ţĥé šţéþ-ƃý-šţéþ ŵàļķţĥŕöüĝĥš ƒöŕ šçĥéđüļîñĝ, ĝàţîñĝ àñđ çöšţ ŕéþöŕţîñĝ öñ ĜîţĤüƃ àñđ ĜîţĻàƃ: Ţĥé ķàþî ļööþ îñ ÇÎ.
Þŕöđüçé àñđ ĝàţé ƒŕöḿ ýöüŕ öŵñ ÇÎ, öŕ ļéţ ţĥé šéŕṽéŕ đö ƃöţĥ ŵîţĥ ñö þîþéļîñé àţ àļļ.
Ţĥé çöñţŕàçţ
À þîþéļîñé ñééđš ţĥŕéé çöḿḿàñđš àñđ ţĥéîŕ éẋîţ çöđéš:
| Çöḿḿàñđ | Ŕöļé | Éẋîţ ƃéĥàṽîöŕ |
|---|---|---|
kapi status | Öƃšéŕṽé: þéŕ-ļöçàļé çöṽéŕàĝé àñđ ĝàţé šţàñđîñĝ | Àļŵàýš 0: ƃéĥîñđ îš þéñđîñĝ ŵöŕķ, ñöţ àñ éŕŕöŕ |
kapi up | Þŕöđüçé: ŕüñš ţĥé ķàþî ļööþ | 0 ŵĥéţĥéŕ ţĥé ŕüñ çàüĝĥţ éṽéŕýţĥîñĝ üþ, ļéƒţ ŵöŕķ ŵàîţîñĝ ƒöŕ ŕéṽîéŵ, öŕ ŵéñţ öñ àƒţéŕ ţĥé éṽéñţ šţŕéàḿ éñđéđ éàŕļý; ñöñ-žéŕö ŵĥéñ ţĥé ŕüñ ƃŕöķé öŕ îţš öüţçöḿé îš üñķñöŵñ |
kapi check --ship | Éñƒöŕçé: ţĥé ŕéļéàšé ƃàŕ | 0 þàšš, 3 ĝàţé üñḿéţ, 4 à ĝàţé đîđ ñöţ ŕüñ, 1 öþéŕàţîöñàļ éŕŕöŕ |
Ŵöŕķ ŵàîţîñĝ ƒöŕ ŕéṽîéŵ éẋîţš 0. Àđđ ţĥé ĝàţé ţö ḿéŕĝé-ŕéǫüéšţ þîþéļîñéš àñđ
à ǫüàļîţý ŕéĝŕéššîöñ çàññöţ ḿéŕĝé. Đàý-ţö-đàý đŕîƒţ ĝöéš ţö ŕéṽîéŵ, àñđ ƃüîļđš
ķééþ þàššîñĝ.
Ţĥé šüŕƒàçéš
| Šüŕƒàçé | Ĥöŵ îţ ŕüñš | Ĝüîđé |
|---|---|---|
| ĜîţĤüƃ Àçţîöñš | setup-kapi îñšţàļļš ţĥé ÇĻÎ (ţĥé ƃöŵŕàîñ þļüĝîñ îñçļüđéđ ƃý đéƒàüļţ); kapi-action ŕüñš kapi up àñđ ŕéþöŕţš ŵĥàţ çĥàñĝéđ, àñđ à šţéþ öƒ ýöüŕ öŵñ çöḿḿîţš îţ öŕ öþéñš à þüļļ ŕéǫüéšţ. Ţĥé ŕéüšàƃļé kapi-workflows (up.yml@v1, gate.yml@v1) çöḿþöšé ƃöţĥ îñţö öñé-ļîñé ĵöƃš | ĜîţĤüƃ Àçţîöñš |
| ĜîţĻàƃ ÇÎ | kapi-components ƒŕöḿ ţĥé ÇÎ/ÇĐ Çàţàļöĝ: up ŕüñš kapi up àñđ ŕéþöŕţš ŵĥàţ çĥàñĝéđ, àñđ ŵîţĥ deliver: mr öþéñš à ḿéŕĝé ŕéǫüéšţ; check ĝàţéš ḿéŕĝé-ŕéǫüéšţ þîþéļîñéš | ĜîţĻàƃ ÇÎ |
| Àñý çöñţàîñéŕ ŕüññéŕ | ghcr.io/neokapi/kapi (çöšîĝñ-šîĝñéđ; ţĥé šéŕṽéŕ-šýñç þļüĝîñ îš þŕéîñšţàļļéđ, šö kapi up / push / pull ŵöŕķ öüţ öƒ ţĥé ƃöẋ) àñđ ţĥé ÇĻÎ đîŕéçţļý; ţĥé éẋîţ çöđéš àƃöṽé àŕé ţĥé çöñţŕàçţ | ţĥîš þàĝé |
| Ñö þîþéļîñé | Ţĥé ƒöŕĝé çöññéçţöŕ / Ƃöŵŕàîñ ĜîţĤüƃ Àþþ: ţĥé šéŕṽéŕ çöñṽéŕĝéš öñ éṽéŕý þüšĥ ţö ţĥé ţŕàçķéđ ƃŕàñçĥ àñđ đéļîṽéŕš ţĥé ŕéšüļţš ƃàçķ àš öñé ÞŔ/ḾŔ | Ţĥé Ƃöŵŕàîñ ĜîţĤüƃ Àþþ |
Ŵĥîçĥ ţö üšé ŵĥéñ
- Ýöü öŵñ ţĥé ŕéþöšîţöŕý'š ÇÎ àñđ ŵàñţ çöñţŕöļ öṽéŕ ţŕîĝĝéŕš, đéļîṽéŕý àñđ
ĝàţîñĝ: üšé
kapi-actionöñ ĜîţĤüƃ öŕkapi-componentsöñ ĜîţĻàƃ. Éàçĥ ĵöƃ îš àñ öŕđîñàŕý þîþéļîñé šţéþ ýöü çàñ šĥàþé. - Ýöü ŵàñţ ḿîñîḿàļ šéţüþ öñ ĜîţĤüƃ: ţĥé ŕéüšàƃļé ŵöŕķƒļöŵš ĝîṽé ýöü ţĥé
ŵĥöļé þŕöđüçé-àñđ-đéļîṽéŕ öŕ ĝàţé ĵöƃ àš à šîñĝļé
uses:ļîñé. - Ñöƃöđý öŵñš ţĥé ŕéþöšîţöŕý'š ÇÎ, àš îñ à đöçš, ḿàŕķéţîñĝ öŕ çöñţéñţ ŕéþöšîţöŕý, öŕ ýöü ŵàñţ ñö çöñƒîĝüŕàţîöñ îñ ţĥé ŕéþöšîţöŕý: çöññéçţ îţ šéŕṽéŕ-šîđé ŵîţĥ ţĥé ƒöŕĝé çöññéçţöŕ öŕ ţĥé Ƃöŵŕàîñ ĜîţĤüƃ Àþþ. Ţĥé šéŕṽéŕ çàţçĥéš üþ öñ éṽéŕý þüšĥ àñđ đéļîṽéŕš à þüļļ ŕéǫüéšţ ƃàçķ.
Àüţĥéñţîçàţîñĝ à ŕüññéŕ
Ḿîñţ à ÇÎ ţöķéñ öñçé, ƒŕöḿ àñ àüţĥéñţîçàţéđ ḿàçĥîñé:
kapi auth login
kapi auth token create --name "ci" --expire-days 90
Ţĥé ţöķéñ (bwt_…) îš šĥöŵñ öñçé, šö šţöŕé îţ àš à ÇÎ šéçŕéţ ŕîĝĥţ àŵàý. Öñ
ţĥé ŕüññéŕ, BOWRAIN_AUTH_TOKEN çàŕŕîéš ţĥé çŕéđéñţîàļ, àñđ ţĥé ÇĻÎ çĥéçķš
îţ ƃéƒöŕé àñý šţöŕéđ ļöĝîñ:
BOWRAIN_AUTH_TOKEN=bwt_...
BOWRAIN_SERVER_URL=https://bowrain.example.com # self-hosted only
Ýöü ñééđ BOWRAIN_SERVER_URL öñļý ƒöŕ à šéļƒ-ĥöšţéđ šéŕṽéŕ. Ţĥé ĥöšţéđ
šéŕṽîçé (https://app.bowrain.cloud) îš ţĥé ƃüîļţ-îñ đéƒàüļţ, àñđ þŕöĵéçţ
çöḿḿàñđš (kapi up, push, pull, check) ŕéàđ ţĥé šéŕṽéŕ ƒŕöḿ ţĥé
çĥéçķéđ-öüţ ŕéçîþé'š bowrain: ƃļöçķ. Öñ ĜîţĤüƃ Àçţîöñš,
setup-kapi'š auth-token àñđ server îñþüţš éẋþöŕţ éẋàçţļý ţĥéšé ţŵö
ṽàŕîàƃļéš. Öñ ĜîţĻàƃ, šéţ ţĥéḿ àš ḿàšķéđ ÇÎ/ÇĐ ṽàŕîàƃļéš. Ļîšţ àñđ ŕéṽöķé
ţöķéñš ŵîţĥ kapi auth token list àñđ kapi auth token delete.
Ŵĥàţ à ĵöƃ ñééđš ƃéýöñđ ţĥé šéŕṽéŕ ţöķéñ đéþéñđš öñ îţš ṽéñüé:
- Šéŕṽéŕ ṽéñüé (à çöññéçţéđ þŕöĵéçţ): ñöţĥîñĝ. Ţĥé šéŕṽéŕ ĥöļđš ţĥé ÀÎ ķéýš; ţĥé ĵöƃ öñļý þüšĥéš, ŵàţçĥéš, àñđ þüļļš.
- Ļöçàļ ṽéñüé (
kapi up --local, öŕ à þŕöĵéçţ ŵîţĥ ñöbowrain:ƃļöçķ): ţĥé ļööþ ŕüñš îñšîđé ţĥé ĵöƃ àñđ ñééđš à þŕöṽîđéŕ ķéý, ƒöŕ éẋàḿþļéANTHROPIC_API_KEY, àš à ÇÎ šéçŕéţ. - Ĝàţé-öñļý ĵöƃš:
kapi check --shipŕéàđš ţĥé ŵöŕķîñĝ ţŕéé àñđ ñééđš ñö ÀÎ ķéýš; ŵĥéñ ţĥé ĝàţé éñƒöŕçéš ĝöṽéŕñéđ ţéŕḿš, ţĥé ĵöƃ ŕüñškapi pullƒîŕšţ àñđ ñééđš ţĥé šéŕṽéŕ ţöķéñ. Šéé Ĝàţé ĝöṽéŕñéđ ţéŕḿš îñ ÇÎ.
Ñéẋţ
- ĜîţĤüƃ Àçţîöñš: ţĥé đééþ ĝüîđé: šéţüþ, çàţçĥ-üþ, ĝàţéš, šýñç, ŕéüšàƃļé ŵöŕķƒļöŵš
- ĜîţĻàƃ ÇÎ: ţĥé
upàñđcheckçöḿþöñéñţš àĝàîñšţ à Ƃöŵŕàîñ šéŕṽéŕ - Ţĥé Ƃöŵŕàîñ ĜîţĤüƃ Àþþ: ƒöŕĝé đéļîṽéŕý ŵîţĥ ñö þîþéļîñé, ĜîţĻàƃ îñçļüđéđ
- Ĝàţé ĝöṽéŕñéđ ţéŕḿš îñ ÇÎ: ĝöṽéŕñéđ ţéŕḿš àš à ḿéŕĝé ĝàţé
- Ķééþîñĝ çöñţéñţ çàüĝĥţ üþ: ţĥé ḿöđéļ ƃéĥîñđ þŕöđüçé, þŕöḿöţé, ŕéļéàšé
- Ţĥé ķàþî ļööþ îñ ÇÎ: ţĥé ƒüļļ ĝéñéŕîç ŵàļķţĥŕöüĝĥš öñ ţĥé ķàþî šîţé