Ora che il tipo di lavoro Pipeline Multibranch è scaduto, c'è qualche motivo per utilizzare più il tipo di lavoro Pipeline semplice? Anche se oggi hai solo una filiale, è probabilmente saggio prevedere la possibilità di più filiali in futuro, e quindi quale sarebbe la motivazione per usare il tipo di lavoro Pipeline per la tua pipeline Jenkins e sempre usando il tipo di lavoro Pipeline Multibranch, partendo dal presupposto che stai memorizzando il tuo Jenkinsfile in SCM? Esiste una parità di funzionalità tra i due tipi di lavoro ora?Lavoro Multibranch Pipeline vs Pipeline
risposta
In una situazione CI/CD, potrebbe non essere consigliabile inviare ogni ramo all'ambiente di destinazione. L'utilizzo della pipeline e la specifica di un singolo ramo consentono di filtrare e inviare solo/master agli ambienti di gestione o di produzione. Multibranch sarebbe utile per inviare qualsiasi modifica su qualsiasi ramo specifico per un ambiente di test.
D'altra parte, se il processo QA/AutomatedTesting è sufficientemente completo, il rischio con l'invio di qualsiasi filiale alla produzione potrebbe essere accettabile.
Nella mia esperienza con le pipeline multibranch, l'UNICO lato negativo è che non è possibile visualizzare le ultime colonne successo/fallimento/durata nella pagina principale di Jenkins. Mostrano solo "NA" sulla prima pagina di Jenkins poiché tecnicamente è una "cartella" di lavori secondari.
Oltre a questo non riesco a pensare a nessun altro "contro" nell'usare il multibranch.
Non sono d'accordo con l'altra risposta .... quel caso era che il multibranch invia modifiche per "qualsiasi" ramo. Questo non è necessariamente vero. Se un Jenkinsfile esiste su un ramo di funzionalità casuali, ma quel ramo non è definito nella pipeline, allora non puoi farci niente usando i condizionali if/else tipici.
Ad esempio:
node {
checkout scm
def workspace = pwd()
if (env.BRANCH_NAME == 'master') {
stage ('Some Stage 1 for master') {
sh 'do something'
}
stage ('Another Stage for Master') {
sh 'do something else here'
}
}
else if (env.BRANCH_NAME == 'stage') {
stage ('Some stage branch step') {
sh 'do something'
}
stage ('Deploy to stage target') {
sh 'do something else'
}
}
else {
sh 'echo "Branch not applicable to Jenkins... do nothing"'
}
}
- 1. Multibranch Pipeline - configure branch projects
- 2. Come si ottiene l'URL SCM all'interno di una pipeline Jenkins o pipeline Multibranch?
- 3. Flusso di lavoro trigger su Github push - Plugin per pipeline - Configurazione Multibranch
- 4. Pipeline parallela
- 5. Hosting PowerShell: PowerShell vs Runspace vs RunspacePool vs Pipeline
- 6. Jenkins Pipeline NotSerializableException: groovy.json.internal.LazyMap
- 7. Pipeline Jenkins Multibranch: qual è la variabile del nome del ramo?
- 8. Job DSL per creare il lavoro di tipo "Pipeline"
- 9. Come si rimuove un lavoro in pipeline inarrestabile in Jenkins?
- 10. Come ottenere l'URL del lavoro della pipeline in jenkins
- 11. Accesso SCM (Git) variabili su un lavoro di Jenkins Pipeline
- 12. R Funzioni di pipeline
- 13. OpenCV Pipeline Editor
- 14. Narrow nested pipeline/multiplexing
- 15. Database: Funzioni pipeline
- 16. Collegamento alla pipeline wcf
- 17. Asset Pipeline Cacheing CSS?
- 18. Powershell: sospensione mid-pipeline
- 19. Jenkins Pipeline Wipe Out Works
- 20. Job Pipeline Jenkins con parametro file
- 21. gelsomino non carica pipeline asset
- 22. Uso partial_fit con Scikit Pipeline
- 23. Timeout fase pipeline GitLab CI
- 24. Asset pipeline force js.erb ricompilazione
- 25. Jenkins Build Trigger pianificato per la pipeline
- 26. Jenkins Costruire flusso contro Workflow (Pipeline) plug
- 27. Persist completato Pipeline in Luigi Visualiser
- 28. Jenkins costruire Pipeline - Restart Alla fase
- 29. Libreria C++ per creare pipeline di esecuzione
- 30. Come ottenere le modifiche dall'ultima build di successo nella pipeline di jenkins?