Come gestire Jenkins da Slack

Anton Smirnov
Aug 23, 2020 · 6 min leggere

di automazione di Test non è solo automatizzando l’applicazione. Direi che anche condividere i risultati dei test a livello di codice con il team fa parte dell’automazione dei test. Quindi, la squadra non dipende da nessun individuo per ottenere i risultati. Il team può anche intraprendere ulteriori azioni in base ai risultati del test senza alcun ritardo.

In questo articolo, vedremo come possiamo condividere i risultati dei test in Slack. Inoltre, come è possibile attivare un’esecuzione automatica della suite di test nel proprio strumento Jenkins / CI.

Slack

Usiamo Slack nella nostra organizzazione. Potresti anche utilizzare Slack per comunicare informazioni tra i membri del team nella tua organizzazione. Slack è un ottimo strumento e mantiene tutti aggiornati e riduce le email inutili.

Slack è un hub di collaborazione per il lavoro, non importa quale lavoro si fa. È un luogo in cui le conversazioni avvengono, le decisioni vengono prese e le informazioni sono sempre a portata di mano. Con Slack, la tua squadra è meglio connessa.
È possibile utilizzare questa applicazione on-off.sito

Slack — Jenkins CI App — Integrazione

presumo che la maggior parte di noi Jenkins Continuo di test automatizzato. Quindi, in questo articolo, ho fornito i passaggi per integrare Jenkins e Slack. Se usi altri strumenti come TeamCity, Bamboo, ecc., il processo sarà ancora quasi lo stesso.

Allentamento:

  • Vai https://slack.com
  • Sfoglia per ‘Jenkins’ app
  • Installare Jenkins CI App nel tuo slack
  • fare Clic su “Aggiungi Configurazione’

  • Prendere nota del team di dominio e Token
  • Selezionare il canale di cui vogliamo rappresentare i risultati

Jenkins

  • Vai a Gestire Jenkins -> Gestione Plugin -> Scheda
  • Installare Slack Notification Plugin
  • Aggiornamento Slack dominio e token => Gestisci Jenkins -> Configurazione di Sistema> Global Slack Notificatore Impostazioni

  • Fare clic su “Test di Connessione” — Si dovrebbe vedere il “successo” messaggio a Jenkins e il seguente messaggio di rallentamento del canale.

Jenkins — Prova di Lavoro

  • Creare un Jenkins di lavoro per Test
  • Aggiornare il post-costruire azioni come illustrato di seguito — con il messaggio personalizzato che si desidera

Jenkins PipeLine

aggiungere una chiamata al plugin

slackSend color: 'good', message: 'Message from Jenkins Pipeline'

Avanti, abbiamo bisogno di determinare il colore corretto e informazioni di testo del messaggio:

def notifySlack(String buildStatus = 'STARTED') {
// Build status of null means success.
buildStatus = buildStatus ?: 'SUCCESS'
def color
if (buildStatus == 'STARTED') {
color = '#D4DADF'
} else if (buildStatus == 'SUCCESS') {
color = '#BDFFC3'
} else if (buildStatus == 'UNSTABLE') {
color = '#FFFE89'
} else {
color = '#FF9FA1'
}
def msg = "${buildStatus}: `${env.JOB_NAME}` #${env.BUILD_NUMBER}:\n${env.BUILD_URL}"
slackSend(color: color, message: msg)
}
node {
try {
notifySlack()
sh 'runbuild'
} catch (e) {
currentBuild.result = 'FAILURE'
throw e
} finally {
notifySlack(currentBuild.result)
}
}

Sommario

Come parte del processo di test continuo, eseguiamo periodicamente gli script automatizzati utilizzando Jenkins. Solo tu, come ingegnere di prova, conosci principalmente i risultati. Altri membri del team potrebbero non essere a conoscenza dei risultati del test. Utilizzando strumenti automatizzati, possiamo creare script automatizzati e utilizzando l’API Slack possiamo condividere i risultati a livello di programmazione.

Creazione di un nuovo utente

Iniziamo con la creazione di un nuovo utente in Jenkins per slack da utilizzare. Prendere nota del token API.

L’ipotesi è che questo utente slack abbia accesso sufficiente per attivare il lavoro.

Eseguire il seguente comando CURL per verificare se l’utente è in grado di richiamare il lavoro.

Questo è il formato dell’URL. Sostituire il contenuto all’interno con informazioni appropriate.

curl -X POST http://@/job//build

Nel mio caso, ho provato come mostrato qui.

curl -X POST http://slack:[email protected]:8080/job/TEST_SMOCK_SLACK_JOB_DEMO/build

Comando Slack — Slash

Per richiamare il job Jenkins di cui sopra, useremmo i comandi slash di Slack. Quindi ogni volta che digiti qualcosa dopo una barra-per esempio:’ / smoketests ‘ — Slack lo tratterà come un comando e può rispondere al comando. Quindi, per questo esempio, Slack può essere configurato per fornire un bollettino meteo per la tua città.

Per invocare il lavoro Jenkins sopra, useremmo i comandi slash di Slack. Quindi ogni volta che digiti qualcosa dopo una barra-per esempio:’ / smoketests ‘ — Slack lo tratterà come un comando e può rispondere al comando. Quindi, per questo esempio, Slack può essere configurato per fornire un bollettino meteo per la tua città.

  • Vai alla configurazione Slack per aggiungere la configurazione Slash.
  • Ho intenzione di creare un comando di prova del fumo — così il mio team può attivare un test del fumo da slack per verificare lo stato dell’applicazione.

  • Aggiungi l’impostazione di integrazione come mostrato qui. Fornire l’URL che dobbiamo chiamare per attivare il lavoro Jenkins.

  • Selezionare la funzione di auto-aiuto completo

  • una Volta che la configurazione è fatta, è possibile verificare immediatamente nel vostro margine di flessibilità. Basta digitare ‘/ s — – si poteva vedere il comando ‘smoketest’

  • Richiamare il comando-Verificare se Jenkins è in grado di attivare il lavoro.

  • Se il lavoro richiede un parametro, utilizzare il seguente formato URL per richiamare il lavoro con i parametri predefiniti.
curl -X POST http://@/job//buildWithParameters
  • Se è necessario passare qualsiasi parametro specifico, è sufficiente aggiungere la variabile e il valore nel parametro.
curl -X POST http://@/job//buildWithParameters?ENVIRONMENT=UAT
  • Per ottenere lo stato/il risultato del lavoro, il lavoro deve essere configurato per pubblicare i risultati su Slack. Si potrebbe controllare un articolo su che qui.

Nota

  • Per far funzionare l’approccio di cui sopra, il server Jenkins dovrebbe essere accessibile da Slack. Assicurarsi che non sia bloccato dal firewall.

Sommario

I comandi Slack sono molto utili e sono utili per ottenere informazioni o per attivare qualcosa che potresti fare frequentemente. In questo modo, qualsiasi utente non tecnico nel team potrebbe farti utilizzare gli script di test automatici chiamando direttamente il comando slash.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.