web-dev-qa-db-fra.com

Comment supprimer les journaux / builds et l'historique des pipelines de travaux CI gitlab

Comment pouvons-nous configurer gitlab pour ne conserver que les 10 derniers jobs/builds CI et supprimer le reste?

Par exemple, dans Jenkins, nous pouvons configurer le travail pour ne conserver que les dernières générations X.

7
Ijaz Ahmad Khan

Je pense que Gitlab ne prend pas en charge cette fonctionnalité. Mais vous pouvez créer cette fonctionnalité vous-même à l'aide de l'API Gitlab et des webhooks.

Lorsque vous poussez pour repo (et que le pipeline a commencé), il déclenchera un webhook qui peut lire votre historique CI via API => vous pouvez supprimer ce que vous voulez.

Voici les documents pour événements de pipeline

Voici les documents pour API de travail

Pour info, j'utilise une solution similaire. J'ai déployé un serveur pour chaque branche (chaque brach a MR). Lorsque MR est fermé, il supprime le serveur déployé. C'est très fiable.

1
Jakub Záruba

Script de suppression en masse corrigé pour les paresseux, supprimez les pipelines X des plus anciens.

Remarque: besoin de jq.

#!/bin/bash
set -e

TOKEN=""
PROJECT=""
# How many to delete from the oldest.
PER_PAGE=100

for PIPELINE in $(curl --header "PRIVATE-TOKEN: $TOKEN" "https://gitlab.com/api/v4/projects/$PROJECT/pipelines?per_page=$PER_PAGE&sort=asc" | jq '.[].id') ; do
    echo "Deleting pipeline $PIPELINE"
    curl --header "PRIVATE-TOKEN: $TOKEN" --request "DELETE" "https://gitlab.com/api/v4/projects/$PROJECT/pipelines/$PIPELINE"
done

0
Mog

Pour les paresseux, pour développer https://stackoverflow.com/a/55815040/1041691

Obtenez votre PROJECT et TOKEN et exécutez-le jusqu'à ce que tous les pipelines soient supprimés

for PIPELINE in $(curl --header "PRIVATE-TOKEN: $TOKEN" "https://gitlab.com/api/v4/projects/$PROJECT/jobs?per_page=100" | jq '.[].pipeline.id') ; do
    echo "deleting $PIPELINE"
    curl --header "PRIVATE-TOKEN: $TOKEN" --request "DELETE" "https://gitlab.com/api/v4/projects/$PROJECT/pipelines/$PIPELINE"
done

0
fommil