Automatické nasazení z GitHub Actions
CI sestaví OCI obraz a pošle jeho digest do Elvora Apps.
Tato cesta je pro aplikaci, jejíž obraz sestavuje GitHub Actions. V průvodci zvol GitHub Actions. Elvora uloží aplikaci bez prvního obrazu a v Nastavení nabídne deploy hook.
Propoj workflow
- V Nastavení → Nasazení přes GitHub Actions vytvoř pojmenovaný token. Plná hodnota se ukáže jen při vytvoření.
- Do GitHub repository secrets přidej
ELVORA_APPS_DEPLOY_URLaELVORA_APPS_DEPLOY_TOKENpodle hodnot v panelu. - Ve workflow nejprve ověř aplikaci, sestav a publikuj obraz do registru. Teprve po úspěšném pushi pošli jeho digest do deploy hooku.
Tělo požadavku má minimálně tyto hodnoty:
{
"image": "ghcr.io/uzivatel/aplikace@sha256:...",
"revision": "git-commit-sha"
}Po kroku docker/build-push-action@v6 použij jeho výstup steps.build.outputs.digest (krok sestavení pojmenuj id: build). Úplný odkaz na obraz tvoří název repozitáře v registru, znak @ a tento digest. Následující krok workflow odešle požadavek do Apps:
- name: Nasadit do Elvora Apps
env:
ELVORA_APPS_DEPLOY_URL: ${{ secrets.ELVORA_APPS_DEPLOY_URL }}
ELVORA_APPS_DEPLOY_TOKEN: ${{ secrets.ELVORA_APPS_DEPLOY_TOKEN }}
IMAGE_DIGEST: ${{ steps.build.outputs.digest }}
run: |
IMAGE_REF="ghcr.io/uzivatel/aplikace@${IMAGE_DIGEST}"
jq -n --arg image "$IMAGE_REF" --arg revision "$GITHUB_SHA" \
'{image: $image, revision: $revision}' |
curl --fail-with-body --show-error --silent \
--request POST "$ELVORA_APPS_DEPLOY_URL" \
--header "Authorization: Bearer $ELVORA_APPS_DEPLOY_TOKEN" \
--header 'Content-Type: application/json' \
--data-binary @-Nahraď ghcr.io/uzivatel/aplikace svým obrazem. Krok spusť až po úspěšném publikování obrazu. Odpověď 202 znamená zařazení vydání do fronty, nikoliv úspěšný start aplikace.
Volitelná metadata mohou nést odkazy na běh GitHub Actions a commit; Elvora je zobrazí v historii vydání. Token drž pouze v GitHub secrets, ne v repozitáři ani v Docker image. Obraz musí být pro Elvora node dostupný. Privátní GHCR balíček bez přístupu nodu se nenasadí.
Po odeslání sleduj Nasazení a Logy. Pokud obraz neprojde kontrolou stavu, zkontroluj port, health path a runtime logy. Token lze v Nastavení zrušit a vytvořit nový.