2012-06-20 17 views
7

Devo riutilizzare un importante progetto C++ che è attualmente sviluppato all'interno di eclipse, utilizzando la funzione di compilazione gestita CDT, mingw e cdt (nessun makefile esterno o ambiente di compilazione). Il progetto stesso è composto da molti sotto-progetti.Integrazione di una build basata su eclipse/cdt nell'integrazione continua

Voglio integrare quella build in un server di integrazione continua (jenkins cioè) e quindi essere in grado di automatizzare la configurazione headless.

Finora, sono riuscito a checkout del progetto (facile da Jenkins) e lo hanno costruito in una modalità headless con Eclipse, utilizzando il seguente comando:

C:\prog\EclipseCdt\eclipse -nosplash -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import %WORKSPACE%\project1 -import %WORKSPACE%\project2 -import %WORKSPACE%\project3 -build all 

E ', tuttavia, non basta:

  • build è asincrona: precedenti restituisce comando (si biforca in realtà), mentre mi aspetto da tenere contesto fino a quando ho un risultato (come sarebbe con make su Linux o su Windows devenv)
  • Non ero in grado di estrarre i log di build (idealmente li ho in un file): per integrarmi nelle mie informazioni continue, ho bisogno di essere in grado di analizzare i miei registri di build per visualizzare informazioni interessanti (pensate ai file danneggiati)
  • Idealmente, Mi piacerebbe ottenere da Eclipse uno stato diretto (codice di ritorno) che indica il passaggio o il fallimento.

Qualche idea su come avere questo comportamento?

Nota che:

  • utilizzando alternativo (esterno) Sistema di costruire non è al momento un'opzione (devo tenere la CDT gestito costruzione, ha un sacco di storia complessa)
  • Ho già guardato su stack overflow e google e non sono riuscito a trovare un modo per farlo, nonostante l'apparente semplicità del mio bisogno
  • Sono attualmente su windows 7/mingw 4.5.2/Eclipse IDE per sviluppatori C/C++ Versione: Indigo Release Build id: 20110615-0604 ma penso che la domanda sia x-platform

risposta

7

sembra che se avvii eclissi da un cmd in modo interattivo, si biforca, se avviato da uno script bat, non lo fa. quindi mettere la linea precedente in jenkins era abbastanza per fare il trucco.

Note:

  • è necessario aggiungere -data parametro per definire la posizione del vostro banco di lavoro (ho pulito costruire ogni volta)
  • come al solito, la colpa finestre e mettere le virgolette ....
  • --launcher.suppressErrors : se qualcosa va storto, impedisce a eclissi di visualizzare un pop-up (che in realtà non viene visualizzato, quindi blocchi di costruzione)

Finale (funzionante!) Comando:

C:\prog\EclipseCdt\eclipse --launcher.suppressErrors -nosplash -data "%WORKSPACE%" -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import "%WORKSPACE%\project1" -import "%WORKSPACE%\project2" -import "%WORKSPACE%\project3" -build all 

EDIT

  • aggiunto --launcher.suppressErrors
Problemi correlati