Gating

Abilita Gating

La gating dei pacchetti basata sui risultati dei test è attualmente abilitata su richiesta. Se desideri attivare la gating per il tuo componente, crea un nuovo file gating.yaml nella directory principale del repository dist git del pacchetto con il seguente contenuto:

Abilita il gate al repository di test:

--- !Policy
versione_prodotto:
  - fedora-*
contesto_decisioni: [bodhi_update_push_testing] tipo_oggetto: koji_build regole:
  - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

Abilita il gate al repository stabile (utilizza questa per gating di rawhide):

--- !Policy
versione_prodotto:
  - fedora-*
decision_contexts: [bodhi_update_push_stable] subject_type: koji_build rules:
  - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
Per abilitare entrambi i gate, è sufficiente concatenare i due esempi precedenti.
Per aggiungere un altro test, è sufficiente estendere la lista rules con un ulteriore !PassingTestCaseRule.

Ciò abiliterà la gating per tutte le release di Fedora basandosi sui risultati della Pipeline di CI. Un contesto decisionale identifica un insieme di politiche utilizzate per una gating specifica. Ad esempio, il contesto decisionale bodhi_update_push_stable viene utilizzato per la gating delle build RPM negli aggiornamenti Bodhi prima di arrivare al repository stabile.

Gli decision_contexts devono corrispondere sia nel file di regole remoto che nella politica nella configurazione di Greenwave (almeno un contesto decisionale). Le regole definiscono i casi di test di resultsdb che dovrebbero essere considerati per la decisione di gating, in questo caso fedora-ci.koji-build.tier0.functional che sono i test eseguiti nella CI basati sulla configurazione tmt o STI nel dist-git del pacchetto. Se nessun test è richiesto per i particolari contesti decisionali, le regole dovrebbero essere impostate su una lista vuota, ad esempio rules: [], altrimenti Greenwave restituirà che non è stato possibile trovare politiche applicabili.

I seguenti test Fedora CI possono essere abilitati per la gating:

Vedi le Politiche specifiche per pacchetto di Greenwave per ulteriori dettagli tecnici sull’impostazione delle politicy.

Utilizzando Piani Multipli

Se stai utilizzando più piani tmt è possibile abilitare la gating solo per i piani selezionati. Invece del tipo generico tier0 usa il nome del piano desiderato nel nome del testcase resultsdb:

!PassingTestCaseRule {test_case_name: fedora-ci.koji-build.<plan-name>.functional}

Ad esempio, la regola utilizzata per abilitare la gating per il piano /plans/basic sarebbe simile a questa:

!PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/basic.functional}

Prima che le regole sopra menzionate possano essere utilizzate, è necessario abilitare la segnalazione separata del piano. Vedi la sezione Piani Multipli per i dettagli.

Waive

Se il risultato del test fallito è irrilevante, puoi ignorarlo utilizzando l’interfaccia web di Bodhi o direttamente dalla riga di comando:

# Elenca i risultati dei test che bloccano
bodhi updates waive <id> --show
# Specifica quali test ignorare tramite:
bodhi updates waive <id> --test="dist.rpmlint" --test="atomic-ci" "Commento che spiega la deroga"
# Ignora tutti i test:
bodhi updates waive <id> --test=all "Commento che spiega la deroga"

Mentre l’interfaccia web consente solo di ignorare tutti i test, la riga di comando fornisce un modo per selezionare i test da ignorare.