test-tag-pipeline

Par openshift · hypershift

Créez un PipelineRun manuel pour tester les modifications du pipeline de tags avant de les fusionner.

npx skills add https://github.com/openshift/hypershift --skill test-tag-pipeline

Créer une PipelineRun manuelle pour tester les modifications du pipeline de tag avant la fusion.

Utilisation : /test-tag-pipeline <tag-name> [branch-spec]

Arguments :

  • tag-name (obligatoire) : Le tag existant à reconstruire (par exemple, v0.1.69)
  • branch-spec (optionnel) : La branche contenant le pipeline mis à jour (par défaut main)
    • Format : [fork:]branch-name
    • Si aucun fork n'est spécifié, par défaut openshift

Ce que cela fait :

  1. Vérifie que vous êtes connecté à l'instance Konflux
  2. Récupère le SHA du commit vers lequel le tag pointe
  3. Récupère la définition du pipeline de tag à partir de la branche/fork spécifiée
  4. Remplace les variables de template par les valeurs réelles pour le tag
  5. Crée une PipelineRun manuelle qui utilise le pipeline mis à jour pour construire le commit du tag
  6. Affiche le nom de la PipelineRun pour la surveillance

Exemples :

# Tester le pipeline de la branche main avec le tag v0.1.69
/test-tag-pipeline v0.1.69

# Tester le pipeline de la branche PR avec le tag v0.1.69
/test-tag-pipeline v0.1.69 build-gomaxprocs-image

# Tester le pipeline de la branche fork avec le tag v0.1.69
/test-tag-pipeline v0.1.69 celebdor:OCPBUGS-63194-part2

Implémentation :

IMPORTANT : Exécutez les commandes exactement comme indiqué avec uniquement les arguments fournis par l'utilisateur. Si aucun argument de branche n'est spécifié, le template {{args.1:-main}} utilisera correctement la valeur par défaut main. Ne remplacez PAS la branche git actuelle ou toute autre valeur déduite.

Étape 1 : Vérifier l'authentification auprès de Konflux

oc whoami

Si la vérification d'authentification échoue, informez l'utilisateur qu'il doit d'abord se connecter :

oc login --web https://api.stone-prd-rh01.pg1f.p1.openshiftapps.com:6443

Étape 2 : Créer la PipelineRun

bash hack/tools/scripts/create-manual-tag-pipelinerun.sh {{args.0}} {{args.1:-main}}

Une fois la PipelineRun créée, extrayez le nom de la sortie et construisez l'URL de l'interface web :

Exemple : https://konflux-ui.apps.stone-prd-rh01.pg1f.p1.openshiftapps.com/ns/crt-redhat-acm-tenant/applications/hypershift-operator/pipelineruns/hypershift-operator-main-manual-v0.1.69-xxxxx

Affichez l'URL complète à l'utilisateur pour qu'il puisse surveiller la progression dans l'interface web.

Vous pouvez aussi la surveiller depuis la CLI avec :

# Surveiller l'état de la PipelineRun
oc get pipelinerun <name> -w

Étape 3 : Une fois la PipelineRun exécutée avec succès, créez un Snapshot pour déclencher la validation du Contrat Entreprise :

bash hack/tools/scripts/create-snapshot-from-pipelinerun.sh <pipelinerun-name>

Une fois le Snapshot créé, extrayez le nom du snapshot de la sortie et récupérez les PipelineRuns EC :

oc get pipelinerun -l appstudio.openshift.io/snapshot=<snapshot-name> -o name

Pour chaque PipelineRun EC, construisez et affichez l'URL de l'interface web :

Exemple : https://konflux-ui.apps.stone-prd-rh01.pg1f.p1.openshiftapps.com/ns/crt-redhat-acm-tenant/applications/hypershift-operator/pipelineruns/hypershift-operator-enterprise-contract-xxxxx

Affichez les URL complètes à l'utilisateur pour qu'il puisse surveiller la validation EC dans l'interface web.

Vous pouvez aussi surveiller depuis la CLI avec :

# Surveiller l'état du snapshot
oc get snapshot <snapshot-name> -w

# Vérifier les résultats du test EC
oc get pipelinerun -l appstudio.openshift.io/snapshot=<snapshot-name>

Notes :

  • Cela est utile pour tester les correctifs de pipeline avant la fusion des PR
  • La PipelineRun utilise la définition du pipeline mise à jour mais construit le commit du tag original
  • Le processus en deux étapes permet à la PipelineRun de se terminer (20+ minutes) avant de créer le Snapshot
  • Nécessite que les outils CLI yq et oc soient installés
  • Consultez hack/tools/scripts/create-manual-tag-pipelinerun.sh et hack/tools/scripts/create-snapshot-from-pipelinerun.sh pour les détails d'implémentation

Skills similaires