Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

de:modul:ffit:3-jahr:cicd:learningunits:lu12:b [2026/05/14 20:36] – angelegt apeterde:modul:ffit:3-jahr:cicd:learningunits:lu12:b [2026/05/17 08:35] (aktuell) apeter
Zeile 1: Zeile 1:
-====== LU12b - Github Secrets ======+====== LU12b - Variablen im Jenkinsfile ====== 
 + 
 +Die Verwendung von Variablen in Jenkinsfile ist manchmal nicht intuitiv, weil zwei unterschiedliche Interpreter im Spiel sind 
 +  - **Groovy/Jenkins**: Interpretiert Env-Variablen und echte Groovy-Variablen 
 +  - **Shell/Bash**: Interpretiert Env-Variablen und echte Shell-Variablen 
 + 
 +Dabei spielen die gewählten Anführungszeichen eine entscheidende Rolle  
 +  * Variablen innerhalb von Double-Quotations werden durch Groovy interpretiert. 
 +  * Variablen innerhalb von Single-Quotations werden nicht durch Groovy interpretiert, sondern erst durch die Shell. 
 + 
 +Grundsätzlich können überall Double-Quotations genutzt werden, sofern Shell-Variablen escaped werden. 
 + 
 +Folgende Tabelle gibt eine Übersicht. 
 + 
 +^ Variablen-Art ^ Schreibweise ^ Kommentar ^ 
 +| Jenkins/env var | <WRAP> 
 +<code bash>sh """ 
 +PUBLIC_URL=/projects/${PROJECT_NAME}/${BRANCH_NAME} \ 
 +"""</code> 
 +<code bash>sh """ 
 +-e POSTGRES_USER=$DB_USER 
 +"""</code>  
 +</WRAP> | ✅ Durch Groovy interpretiert | 
 +| Echte Groovy-Variable | <WRAP> 
 +<code bash>sh """ 
 +${scannerHome}/bin/sonar-scanner \ 
 +"""</code> 
 +<code bash>sh """ 
 +$scannerHome/bin/sonar-scanner \ 
 +"""</code> 
 +</WRAP> | ✅ Durch Groovy interpretiert | 
 +| Echte Shell-Variable | <WRAP> 
 +<code bash>sh """ 
 +if [ "\${TABLE_EXISTS}" = "" ]; then 
 +"""</code> 
 +<code bash>sh """ 
 +if [ "\$TABLE_EXISTS" = "" ]; then 
 +"""</code> 
 +</WRAP> | ⚠️ Dollar muss escaped werden, damit Shell anstatt Groovy interpretiert | 
 +| Jenkins/env var | <WRAP> 
 +<code bash>sh ''' 
 +PUBLIC_URL=/projects/${PROJECT_NAME}/${BRANCH_NAME} \ 
 +'''</code> 
 +<code bash>sh ''' 
 +-e POSTGRES_USER=$DB_USER 
 +'''</code> 
 +</WRAP> | ✅ Durch Shell interpretiert | 
 +| Echte Groovy-Variable | <WRAP> 
 +<code bash>sh ''' 
 +${scannerHome}/bin/sonar-scanner \ 
 +'''</code> 
 +<code bash>sh ''' 
 +$scannerHome/bin/sonar-scanner \ 
 +'''</code> 
 +</WRAP> | ❌ Funktioniert nicht | 
 +| Echte Shell-Variable | <WRAP> 
 +<code bash>sh ''' 
 +if [ "${TABLE_EXISTS}" = "" ]; then 
 +'''</code> 
 +<code bash>sh ''' 
 +if [ "$TABLE_EXISTS" = "" ]; then 
 +'''</code> 
 +</WRAP> | ✅ Durch Shell interpretiert | 
  
-  * .env-Files 
-  * Secrets in Github 
-  * Secrets in Jenkins 
-  * Sonar-Token 
-  * Webhook? 
  
-''TODO'' 
  • de/modul/ffit/3-jahr/cicd/learningunits/lu12/b.txt
  • Zuletzt geändert: 2026/05/17 08:35
  • von apeter