========================= == Processo de Release == ========================= O processo de release dá-se do seguinte modo: 1. quando se trata de uma versão para qual ainda não existe um branche, deve-se criar o mesmo a partir da trunk e prosseguir com o processo; 2. assim que exista uma branche de release basta aceder ao job "rec-ist-release" no Jenkins, clicar em Build with Parameters e preencher as propriedades necessárias para que o processo de release seja despoletado: - release_branch: o branche SVN sobre o qual irá ser feita a release; - release_task_id: o id do bug da release no Bugzilla; - release_version: uma vez que o projeto não tem atualmente um modo automático de obter a sua versão é necessário indicar a versão da release de modo fazer-se o processo de tagging e de arquivamento dos artefactos da release com base nesta mesma versão; - svn_username / svn_password: credenciais necessárias para os comandos svn do job; 3. é efetuado o checkout do branche em questão; 4. o build.properties.sample é copiado para build.properties; 5. o script $JENKINS_HOME/linkare-release-support/jenkins_scripts/rec-apply_properties.sh é executado e faz o seguinte: 5.1. lê linha a linha o ficheiro build_production.properties, presente na raiz do projeto e que consite das propriedades que interessam personalizar para o ambiente de produção; 5.2. verifica se a propriedade a ser avaliada está configurada (e descomentada) no build.properties; 5.3. se a propriedade tiver a mesma configuração do ficheiro build_production.properties, então não é feito mais nada; 5.4. se a propriedade existir mas tiver uma configuração diferente então é substituída pelo valor presente em build_production.properties; 5.5. se a propriedade não existir então é adicionada ao final do build.properties. 6. o projeto rec é compilado com o comando "ant -f buildall.xml dist.all"; 7. é realizado um download do WSDL atual do moodle (http://e-lab.ist.utl.pt/moodle/wspp/wsdl_pp.php) e o projeto rec.web é compilado com o comando "mvn clean package"; 8. é gerado, na raiz do workspace do job, o arquivo "rec-${release_version}.zip", que contém os zips das experiências, dos multicasts e do cliente, bem como o WAR do rec.web; 9. o arquivo da release é copiado, via scp, para a diretoria ~/release-archives/ do user elab em elab.ist.utl.pt; 10. é marcada uma tag SVN da versão da release; 11. é enviado um e-mail com o resultado da execução do job de release para a mailing list release@linkare.com; 12. neste ponto pode-se prosseguir com o deploy do arquivo da release no servidor de produção.