Mise à jour de 'Utiliser le pipeline "Symfony"'

wpetit 2022-10-17 17:11:26 +02:00
parent 548db1b422
commit e05ac02142
1 changed files with 77 additions and 0 deletions

@ -26,3 +26,80 @@ Les PRs de votre projet seront désormais validées avec:
- https://github.com/FriendsOfPhp/PHP-CS-Fixer
Elles seront automatiquement commentées par Jenkins ([Exemple](https://forge.cadoles.com/Pyxis/orion-suite/pulls/106)).
## Utiliser les hooks
Il est possible d'utiliser un mécanisme de "hooks" pour exécuter des opérations arbitraires à certaines étapes du pipeline. Voici les hooks disponibles:
### `preSymfonyAppPipeline`
Exécuté en amont du pipeline de validation de l'application Symfony.
### Exemple
```groovy
@Library('cadoles@podman') _
symfonyAppPipeline('ubuntu:22.04', [
'hooks': [
'preSymfonyAppPipeline': {
stage('Mon stage personnalisé') {
println "HELLO FROM preSymfonyAppPipeline hook !"
}
}
]
])
```
### `buildSymfonyImage`
Exécuté juste avant la construction de l'image Docker qui sera utilisée pour valider l'application Symfony. Si vous avez besoin de modifier le Dockerfile pour installer des outils supplémentaires, c'est ce hook qu'il vous faut.
### Exemple
```groovy
@Library('cadoles@podman') _
symfonyAppPipeline('ubuntu:22.04', [
'hooks': [
'buildSymfonyImage': {
// On charge le fichier Dockerfile en mémoire
String dockerfile = readFile(file:'Dockerfile')
// On ajoute des lignes dans le fichier Dockerfile en mémoire pour installer des dépendances
// PHP et NodeJS
dockerfile = """
${dockerfile}
RUN apt update && apt install -y php-gd php-curl php-zip curl
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && apt-get install -y nodejs
RUN npm install -g yarn
""".stripIndent()
// On réécrit le fichier Dockerfile avec nos modifications.
writeFile(file:'Dockerfile', text: dockerfile)
}
]
])
```
### `postSymfonyAppPipeline`
Exécuté en aval du pipeline de validation de l'application Symfony.
### Exemple
```groovy
@Library('cadoles@podman') _
symfonyAppPipeline('ubuntu:22.04', [
'hooks': [
'postSymfonyAppPipeline': {
stage('Mon stage personnalisé') {
println "HELLO FROM postSymfonyAppPipeline hook !"
}
}
]
])
```