Aller au contenu principal

Interface et Jobs Jenkins


Interface web

Dashboard principal

┌─────────────────────────────────────────────────────────────┐
│ Jenkins [Search] [Admin ▼] │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌─────────────────────────────────────┐ │
│ │ New Item │ │ Build Queue │ │
│ │ People │ │ (empty) │ │
│ │ Build History│ ├─────────────────────────────────────┤ │
│ │ Manage │ │ Build Executor Status │ │
│ │ My Views │ │ ● master (idle) │ │
│ │ Credentials │ │ ● agent-1 (building #42) │ │
│ └──────────────┘ └─────────────────────────────────────┘ │
│ │
│ All Jobs │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Name │ Status │ Last │ Duration │ Weather │ │
│ │──────────────┼────────┼──────┼──────────┼───────────│ │
│ │ ☀️ my-app │ ✓ │ #45 │ 2m 30s │ ☀️ │ │
│ │ ⛈️ api-tests │ ✗ │ #12 │ 5m 15s │ ⛈️ │ │
│ │ 🌤️ deploy │ ● │ #8 │ 1m 45s │ 🌤️ │ │
│ └─────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

Indicateurs de statut

IcôneSignification
🔵 ✓Build réussi
🔴 ✗Build échoué
🟡 ⚠Build instable (tests échoués)
Jamais construit
🔄Build en cours
⏸️Build désactivé

Weather (Météo)

La météo indique la tendance des derniers builds :

MétéoSignification
☀️80%+ de réussite
🌤️60-80% de réussite
40-60% de réussite
🌧️20-40% de réussite
⛈️0-20% de réussite

Types de Jobs

Freestyle Project

Job classique configuré via l'interface.

Cas d'usage : Scripts simples, tâches ponctuelles.

Pipeline

Job défini en code Groovy.

Cas d'usage : CI/CD complexes, Pipeline as Code.

Multibranch Pipeline

Un pipeline automatique par branche Git.

Cas d'usage : Projets avec plusieurs branches actives.

Folder

Organisation logique des jobs.

my-organization/
├── frontend/
│ ├── web-app
│ └── mobile-app
├── backend/
│ ├── api
│ └── workers
└── infrastructure/
├── terraform
└── kubernetes

Créer un Freestyle Job

Étape 1 : Nouveau job

  1. Cliquer "New Item"
  2. Entrer le nom : my-first-job
  3. Sélectionner "Freestyle project"
  4. Cliquer "OK"

Étape 2 : Configuration générale

General
├── Description: Mon premier job Jenkins
├── Discard old builds: ✓
│ └── Max # of builds to keep: 10
├── GitHub project: https://github.com/user/repo
└── This project is parameterized: ✓

Étape 3 : Source Code Management

Source Code Management
├── Git
│ ├── Repository URL: https://github.com/user/repo.git
│ ├── Credentials: github-credentials
│ └── Branches to build: */main

Étape 4 : Build Triggers

Build Triggers
├── Build periodically: H/15 * * * *
├── Poll SCM: H/5 * * * *
├── GitHub hook trigger for GITScm polling: ✓
└── Build after other projects: upstream-job

Syntaxe Cron

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-7)
│ │ │ │ │
* * * * *

Exemples:
H * * * * # Toutes les heures (minute aléatoire)
H/15 * * * * # Toutes les 15 minutes
H 0 * * * # Chaque jour à minuit
H 0 * * 1-5 # Chaque jour de semaine à minuit

Étape 5 : Build Environment

Build Environment
├── Delete workspace before build starts: ✓
├── Add timestamps to Console Output: ✓
├── Use secret text(s) or file(s): ✓
│ └── Secret text: DOCKER_PASSWORD
└── Inject environment variables: ✓
└── Properties Content: ENV=production

Étape 6 : Build Steps

Build Steps
├── Execute shell:
│ #!/bin/bash
│ echo "Building version: $BUILD_NUMBER"
│ npm install
│ npm run build
│ npm test

├── Invoke Gradle script:
│ └── Tasks: clean build test

└── Execute Windows batch command:
└── msbuild /p:Configuration=Release

Étape 7 : Post-build Actions

Post-build Actions
├── Archive the artifacts: target/*.jar
├── Publish JUnit test result report: target/test-reports/*.xml
├── E-mail Notification: [email protected]
├── Build other projects: deploy-job
└── Slack Notifications: ✓

Paramètres de build

Types de paramètres

// String Parameter
properties([
parameters([
string(
name: 'BRANCH',
defaultValue: 'main',
description: 'Branche à construire'
),

// Choice Parameter
choice(
name: 'ENVIRONMENT',
choices: ['dev', 'staging', 'prod'],
description: 'Environnement cible'
),

// Boolean Parameter
booleanParam(
name: 'SKIP_TESTS',
defaultValue: false,
description: 'Passer les tests'
),

// Password Parameter
password(
name: 'DEPLOY_TOKEN',
description: 'Token de déploiement'
),

// File Parameter
file(
name: 'CONFIG_FILE',
description: 'Fichier de configuration'
)
])
])

Utilisation des paramètres

# Dans un script shell
echo "Deploying to: ${ENVIRONMENT}"
echo "Branch: ${BRANCH}"

if [ "${SKIP_TESTS}" = "true" ]; then
echo "Skipping tests..."
else
npm test
fi

Variables d'environnement

Variables prédéfinies

VariableDescription
BUILD_NUMBERNuméro du build
BUILD_IDID unique du build
BUILD_URLURL du build
JOB_NAMENom du job
WORKSPACEChemin du workspace
JENKINS_URLURL de Jenkins
GIT_COMMITHash du commit
GIT_BRANCHBranche Git
NODE_NAMENom de l'agent
EXECUTOR_NUMBERNuméro de l'executor

Accéder aux variables

# Shell
echo "Build #${BUILD_NUMBER} on ${NODE_NAME}"
echo "Commit: ${GIT_COMMIT}"

# Groovy
echo "Build: ${env.BUILD_NUMBER}"
echo "Job: ${env.JOB_NAME}"

Console Output

Lire les logs

Started by user admin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/my-job
[my-job] $ /bin/bash -xe /tmp/jenkins123.sh
+ echo Building version: 42
Building version: 42
+ npm install
...
+ npm test
All tests passed!
Finished: SUCCESS

Filtrer les logs

// Masquer les secrets
wrap([$class: 'MaskPasswordsBuildWrapper']) {
sh 'echo "Password: $SECRET_PASSWORD"'
}

Gestion du Workspace

Structure

/var/jenkins_home/workspace/
├── my-job/
│ ├── src/
│ ├── package.json
│ └── node_modules/
├── my-job@2/ # Builds parallèles
└── my-job@tmp/ # Fichiers temporaires

Nettoyer le workspace

// Dans un pipeline
cleanWs()

// Ou en Freestyle
// ✓ Delete workspace before build starts

Résumé

ConceptDescription
DashboardVue d'ensemble des jobs
FreestyleJob configuré via UI
PipelineJob défini en code
MultibranchPipeline par branche
ParametersEntrées utilisateur
WorkspaceRépertoire de travail

← Installation | Pipelines →