Concept

Ordonnenceur / Scheduleur
Run de jobs
Pipeline CI : build/run/test

Jobs

Plusieurs type de job : - Freestyle: simple standard (pour du script par ex) - Pipeline - Tache externe

Trigger + remote launch

Comment le job va etre lance si ce n'est pas manuel

Trigger : - Sur echec - Sur reussite - Dans tout les cas

On peut trigger : - via hook URL (remote URL) - via build d'un autre projet (selon son statut) - via cron (correspond a la syntaxe cron) - via Git trigger

Parametres

On peut indiquer plusieurs parametres :

  • Mot de passe
  • string
  • bool
  • choix via liste
  • parametres d'execution
  • identifiants (gestion des secrets)
  • fichiers
  • texte

Ces parametres peuvent etre utilise dans le build (ex: parametre mdp, echo $mdp)
Parametres d'execution permet de recup les parametres d'autres build

Pipeline

Chaine d'action / jobs decrits par du code en Groovy

Ex :

pipeline {
    agent any 
    stages {
        stage('Build') { 
            steps {
                // 
            }
        }
        stage('Test') { 
            steps {
                // 
            }
        }
        stage('Deploy') { 
            steps {
                // 
            }
        }
    }
}

Decrit via des JenkinsFile qui a pour avantage : - Declaratif - Versionnable - Portatif sans modif

Docker et Jenkins

Utilite : - Run des container et travailler dedans - Run des containers pour faire des tests dessus - Build des images pour les livrer en prod

Si on simplifie, deux cas : - agent : on travaille dans le conteneur (le conteneur est un host) - node : on travaille de l'exterieur du conteneur (le conteneur est une cible)

Users & Roles

Possibilite de creer des users et des roles
Possibilite d'attribuer des roles a des users et de les correler a des jobs (avec des regles d'auto-adhesion)

Plugin git

On peut grace au plugin git : - Git cloner automatiquement grace a des vars - Lancer un build lors d'un commit - Push sur git lors d'un build (si build ok par ex) - Ajouter une image docker a la registry d'un projet Gitlab

Custom

Vue :

  • objectif : organiser le classement des jobs
  • soit une vue personnalisee
  • soit des vues de classement
  • permet de filtrer les files de lanceurs et de constructions
  • peut etre alimenee par une regex de filtre (Java_ ...)