6
respostas

JENKINS + SVN + PROJETO ANGULAR 2 + TOMCAT

Ola,

Alguem poderia me ajudar como que faço para jenkins compilar e subir no tomcat um projeto angular 2?

instalei o plugin node js no jenkins mas nao to conseguindo fazer funcionar.

na parte de build eu seleciono "execute nodejs script" e coloco o codigo para gerar a pasta dist do projeto para colocar dentro do tomcat mas da erro no codigo.

Se eu fizer na mão sem usar o jenkins funciona mas eu quero automatizar essa parte.

Grato!

6 respostas

Olá, Gustavo.

Qual é a mensagem de erro?

No meu nodejs eu executo o seguinte codigo ng build --base-href=/projeto/ ele gera a pasta dist dentro da pasta do meu projeto, eu pego essa pasta e jogo na pasta webapps do tomcat e funciona perfeitamente. Para eu automatizar no jenkins eu fui em "manage Jenkins" e depois em global tool configuration" e add NodeJs e coloco a pasta onde esta instalado o nodejs na minha maquina. Depois crio um job no jenkins e seleciono a opção "Provide Node & npm bin/ folder to PATH" que fica em ambiente de build e na area de Build eu seleciono "execute nodejs script" e coloco o comando ng build --base-href=/projeto/ o mesmo que faço no meu nodejs.

Ao contruir o job na saida de console do jenkins me apresenta o seguinte o erro.

No changes for http://esbsa018593dd2.localhost/svn/teste-local-angular-front since the previous build [teste-local-angular-front] $ "C:\Program Files\nodejs\node.exe" "C:\Program Files\Apache Software Foundation\Tomcat 7.0\temp\jenkins8101572306552192457.js" C:\Program Files\Apache Software Foundation\Tomcat 7.0\temp\jenkins8101572306552192457.js:1 (function (exports, require, module, filename, dirname) { ng build --base-href=/gcp/ ^^^^^

SyntaxError: Unexpected identifier at createScript (vm.js:80:10) at Object.runInThisContext (vm.js:139:10) at Module._compile (module.js:616:28) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) at Function.Module.runMain (module.js:693:10) at startup (bootstrap_node.js:191:16) at bootstrap_node.js:612:3 Build step 'Execute NodeJS script' marked build as failure Finished: FAILURE

No Global npm packages to install você colocou o @angular/cli?

Hmmm...

Pensei aqui, Gustavo...

O ng build não é um script Node, mas uma aplicação de linha de comando.

O execute nodejs script espera que você tenha um arquivo .js, mas o que temos é um comando.

Acho que o lance é configurar como uma linha de comando mesmo.

Entao como eu deveria fazer? Devo colocar em shell? O que devo colocar para fazer build e o deploy? Desculpe é que ainda estou aprendendo usar essas tecnologias.

Isso!

No Jenkins, criar um build step com Executar Shell e, no comando, colocar o ng build --base-href=/projeto/. Também coloque um comando cp para copiar a pasta gerada para o Tomcat.