Quali funzionalità plug-and-plug devo impostare per far sì che il mio lavoro Jenkins attivi un build ogni volta che il codice è impegnato in un progetto SVN? Ho installato sia il plug-in SVN standard che il plug-in di codifica SVN, ma non vedo alcuna nuova funzionalità che consenta la configurazione del trigger.Jenkins CI: Come attivare i build sul commit SVN
risposta
Ci sono due modi per andare su questo:
mi consiglia la prima opzione inizialmente, grazie alla sua facilità di implementazione. Una volta maturato nei processi di generazione, passa al secondo.
Eseguire il polling del repository per verificare se si sono verificate modifiche. Questo potrebbe "saltare" un commit se due commit entrano nello stesso intervallo di polling. Description of how to do so here, si noti la quarta schermata in cui si configura sul lavoro un "build trigger" basato sul polling del repository (con una configurazione simile a crontab).
Configura il tuo repository per avere un hook post-commit che notifica a Jenkins che è necessario avviare una build. Description of how to do so here, nella sezione "post-commit ganci"
La funzione di tag SVN non è parte del polling, è parte di promuovere la "testa" corrente del codice sorgente a un tag, ad un'istantanea di un costruire. Questo ti permette di fare riferimento a Jenkins # 32 come tag SVN/tag/build-32 (o qualcosa di simile).
ganci post-commit rock. Tempi di risposta più rapidi e (su scala) il sistema CI non schiaccia il repository di origine con centinaia di richieste di log delle modifiche. – EricMinick
@EricMinick Sono fantastici, ma a volte possono fondere il server CI, se si ricevono molti piccoli commit in un breve periodo di tempo. Sono tutti cavalli per i corsi, ed è difficile sapere quale metodo sia favorevole senza analizzare come funziona il tuo processo di sviluppo. –
@EdwinBuck: Sai se c'è un modo per configurare Jenkins per costruire solo commit selettivi? Spiegherò, ho un tortoiseSVN e un progetto Jenkins che continua a interrogare il repository. Ora se desidero che l'impegno che faccio non debba innescare Jenkins, c'è un modo per farlo? –
Ho creato uno strumento usando python con un po 'di bash per attivare una build di jenkins. In pratica dovete raccogliere questi due valori da post-commit quando un commit server di colpire svn:
REPOS = "$ 1" REV = "$ 2"
quindi si utilizza "svnlook dirs-changed $ 1 -r $ 2 "per ottenere il percorso che è appena impegnato. Quindi da quello puoi controllare quale repository vuoi costruire. Immagina di avere centinaia di migliaia di progetti. Non è possibile controllare l'intero repository giusto?
È possibile controllare il mio script da github
Ho scritto questo script dato che ho appena imparare Python, e ancora utilizzando ora. Avevo intenzione di migliorarlo, ma i nuovi progetti e le cose mi tengono per tutto il tempo. Ognuno ha una buona conoscenza di Python ha sicuramente un migliore strumento integrato. Se qualcuno potesse condividere, mi piacerebbe averlo.
È possibile utilizzare un hook post-commit.
Inserire lo script di hook post-commit nella cartella hooks
, creare un wget_folder
nell'unità C: \ e inserire il file wget.exe
in questa cartella. Aggiungere il seguente codice nel file denominato post-commit.bat
SET REPOS=%1
SET REV=%2
FOR /f "tokens=*" %%a IN (
'svnlook uuid %REPOS%'
) DO (
SET UUID=%%a
)
FOR /f "tokens=*" %%b IN (
'svnlook changed --revision %REV% %REPOS%'
) DO (
SET POST=%%b
)
echo %REPOS% ----- 1>&2
echo %REV% -- 1>&2
echo %UUID% --1>&2
echo %POST% --1>&2
C:\wget_folder\wget^
--header="Content-Type:text/plain"^
--post-data="%POST%"^
--output-document="-"^
--timeout=2^
http://localhost:9090/job/Test/build/%UUID%/notifyCommit?rev=%REV%
dove prova = nome del lavoro
echo
viene utilizzato per vedere il valore e si può anche aggiungere exit 2
alla fine di conoscere il problema e se lo script di hook post-commit è in esecuzione o meno.
Consiglieresti a GitHub invece di SVN per attivare le build? In realtà conosco solo SVN, ma mi chiedo perché così tante persone tendono a usare GitHub.
È necessario richiedere solo un plug-in che è un plug-in di sovversione. poi Semplicemente, Andare in jenkins-> job_name-> sezione Attivatore costruire -> (i) trigger costruire da remoto (cioè da script) token di autenticazione: -Token_name
Poi vai a Directory ganci del server SVN poi dopo l'incendio sotto i comandi: - (a) cp post-commit.tmpl post-commit (b) chmod 777 post-commit (c) chown -R www-data: www-data post-commit (d) vi post- commit nota: Tutte le linee devono essere commentate aggiungere sotto la riga alla fine synta x (per l'utente linux): -/usr/bin/ricciolo http://username:[email protected]:8081/job/job_name/build?token=Token_name
sintassi (per utenti Windows): - C:/curl_for_win/ricciolo http://username:[email protected]:8081/job/job_name/build?token=Token_name
- 1. Come attivare l'ambiente conda in jenkins build
- 2. Trigger Build in Jenkins tramite EMAIL
- 3. Come posso attivare una build Jenkins di un singolo modulo in una build Maven multi-modulo da Subversion?
- 4. Come utilizzare i build parametrizzati Jenkins?
- 5. Come gestire i build concomitanti di Maven su Jenkins?
- 6. Jenkins (Hudson) SVN checkout
- 7. Jenkins Costruzione parziale/Configurazione modulare su gancio di commit
- 8. Gitlab CI vs Jenkins
- 9. Informazioni sul build del flusso di lavoro Jenkins
- 10. Github Pull Request Builder - Impossibile attivare build e impossibile impostare lo stato di build su github commit
- 11. Come fare svn commit come utente diverso?
- 12. Come classificare i fallimenti di build con jenkins?
- 13. Come aggiungere alcuni passaggi pre-build a jenkins?
- 14. La build di Jenkins fallisce con SVNException
- 15. SVN Regolamenti di commit
- 16. Jenkins Multiple SCM: build di attivazione di tutti gli SCM
- 17. Travis CI crea due buid per ogni commit di Github
- 18. SVN commit problema
- 19. Problemi di build su .NET 4.0 sul server CI
- 20. Jenkins ottenere l'elenco di build e parametri
- 21. Riferimento Microsoft.VisualStudio.QualityTools.UnitTestFramework per build CI
- 22. svn: E000002: Commit non riuscito
- 23. Come personalizzare il nome di build Jenkins?
- 24. Riavvia un build Jenkins fallito con clean
- 25. SVN atomic commit how-to
- 26. build .net applicazione in Jenkins utilizzando MSBuild
- 27. Come faccio a generare dinamicamente build downstream in jenkins?
- 28. Errore di Jenkins Build java.lang.ClassNotFoundException: hudson.remoting.Launcher
- 29. Ritardante lavoro Jenkins post-build
- 30. svn: Come annullare una fusione (senza commit)?
possibile duplicato del [Trigger Hudson generazione quando svn commit] (http : //stackoverflow.com/questions/4792466/trigger-hudson-build-when-svn-commit) – highlycaffeinated