Update .forgejo/workflows/deploy.yaml
Some checks failed
/ build-and-deploy (push) Failing after 18s

This commit is contained in:
sfaguet 2026-08-25 14:16:08 +02:00
parent cdc86d37cf
commit ac3a1d0ef1

View file

@ -9,6 +9,9 @@ jobs:
env:
NAMESPACE: clem-siwa-game-prd
REGISTRY: clem-siwa-game
# regctl écrit sa config dans $HOME/.regctl par défaut ; on la place dans
# /tmp pour ne dépendre d'aucun HOME inscriptible côté runner.
REGCTL_CONFIG: /tmp/regctl.json
steps:
- uses: actions/checkout@v4
with:
@ -18,14 +21,41 @@ jobs:
run: |
helm lint charts
# regctl relit ~/.docker/config.json par défaut, ce login lui sert donc
# aussi : l'entrée que regctl écrit ensuite pour le chunking ne porte que
# blobChunk/blobMax et n'écrase pas les identifiants.
- name: Docker login
run: |
docker login $REGISTRY_URL -u $REGISTRY_USER --password "$REGISTRY_PASS"
- name: Build and push hugo
run: |
docker build --progress=plain -t $REGISTRY_URL/$REGISTRY/clem-hugo:${{ github.sha }} .
docker push $REGISTRY_URL/$REGISTRY/clem-hugo:${{ github.sha }}
IMAGE=$REGISTRY_URL/$REGISTRY/clem-hugo:${{ github.sha }}
# Le driver buildx par défaut ("docker") ne sait pas exporter en OCI,
# le format que regctl sait importer. On partage donc un builder
# conteneurisé nommé, dont le cache survit d'un run à l'autre.
# Le runner a capacity: 2 et exécute les steps en mode host : deux
# jobs peuvent se disputer la création de ce builder. On tolère de
# perdre la course en retombant sur l'instance gagnante.
# cpu-quota/cpu-period bornent buildkitd à 6 des 8 coeurs : il tourne
# en conteneur frère sur le daemon du noeud, donc hors des limits du
# pod runner, et une build lourde y suffit à affamer le control plane.
# Ces options ne s'appliquent qu'à la création du conteneur.
docker buildx inspect --bootstrap ci >/dev/null 2>&1 \
|| docker buildx create --name ci --driver docker-container --bootstrap \
--driver-opt cpu-quota=600000 --driver-opt cpu-period=100000 >/dev/null 2>&1 \
|| docker buildx inspect --bootstrap ci >/dev/null
docker buildx build --builder ci --progress=plain \
--output type=oci,dest=/tmp/clem-hugo.tar -t "$IMAGE" .
# L'edge Cloudflare refuse tout corps de requête > 100 Mo (413), et
# docker push envoie chaque blob en une seule requête. regctl, lui,
# découpe (cf. README §8 de obicorp-infra).
regctl registry set --blob-chunk 50000000 --blob-max 50000000 "$REGISTRY_URL"
regctl image import "$IMAGE" /tmp/clem-hugo.tar
rm -f /tmp/clem-hugo.tar
- name: Ensure namespace exists
run: |